Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-14878

JPA ignores field in class - not present in db table

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Not a Bug
    • 10.0.33-galera
    • N/A
    • OTHER
    • None

    Description

      Exception when trying to insert into empty table.

      PLEASE SEE COMMENT IN UPPERCASE BELOW.

      jan 06, 2018 4:14:12 PM org.eclipse.persistence.session.file:/C:/Users/trond/AppData/Local/Temp/ejb-app2357173617210013789/d__2__classes_jar/_REGDB
      WARNING: 
      Local Exception Stack: 
      Exception [EclipseLink-6023] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.QueryException
      Exception Description: The list of fields to insert into the table [DatabaseTable(CALL_SESSION_TABLE)] is empty.  You must define at least one mapping for this table.
      Query: InsertObjectQuery(null)
      	at org.eclipse.persistence.exceptions.QueryException.objectToInsertIsEmpty(QueryException.java:962)
      	at org.eclipse.persistence.internal.expressions.SQLInsertStatement.buildCallWithoutReturning(SQLInsertStatement.java:59)
      	at org.eclipse.persistence.internal.expressions.SQLModifyStatement.buildCall(SQLModifyStatement.java:61)
      	at org.eclipse.persistence.descriptors.ClassDescriptor.buildCallFromStatement(ClassDescriptor.java:813)
      	at org.eclipse.persistence.internal.queries.StatementQueryMechanism.setCallFromStatement(StatementQueryMechanism.java:390)
      	at org.eclipse.persistence.internal.queries.StatementQueryMechanism.prepareInsertObject(StatementQueryMechanism.java:304)
      	at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.prepareInsertObject(ExpressionQueryMechanism.java:1687)
      	at org.eclipse.persistence.queries.InsertObjectQuery.prepare(InsertObjectQuery.java:111)
      	at org.eclipse.persistence.queries.DatabaseQuery.checkPrepare(DatabaseQuery.java:661)
      	at org.eclipse.persistence.queries.DatabaseQuery.checkPrepare(DatabaseQuery.java:613)
      	at org.eclipse.persistence.internal.sessions.CommitManager.commitNewObjectsForClassWithChangeSet(CommitManager.java:218)
      	at org.eclipse.persistence.internal.sessions.CommitManager.commitAllObjectsForClassWithChangeSet(CommitManager.java:193)
      	at org.eclipse.persistence.internal.sessions.CommitManager.commitAllObjectsWithChangeSet(CommitManager.java:138)
      	at org.eclipse.persistence.internal.sessions.AbstractSession.writeAllObjectsWithChangeSet(AbstractSession.java:4207)
      	at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabase(UnitOfWorkImpl.java:1441)
      	at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabaseWithPreBuiltChangeSet(UnitOfWorkImpl.java:1587)
      	at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.writeChanges(RepeatableWriteUnitOfWork.java:452)
      	at org.eclipse.persistence.internal.jpa.EntityManagerImpl.flush(EntityManagerImpl.java:863)
      	at com.sun.enterprise.container.common.impl.EntityManagerWrapper.flush(EntityManagerWrapper.java:437)
      	at no.tobiassenit.sip.registrar.util.EntityMethods.mergeContactSession(EntityMethods.java:68)
      	at no.tobiassenit.sip.registrar.dialog.MessageToTransactionInTransactionSequence.add(MessageToTransactionInTransactionSequence.java:90)
      	at no.tobiassenit.sip.registrar.client.HandleRegisterFromCsipSimple.run(HandleRegisterFromCsipSimple.java:147)
      	at no.tobiassenit.sip.registrar.mdb.RegistrarMDB.onMessage(RegistrarMDB.java:86)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081)
      	at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1153)
      	at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4786)
      	at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:656)
      	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
      	at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608)
      	at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:55)
      	at org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:52)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
      	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
      	at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369)
      	at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4758)
      	at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4746)
      	at org.glassfish.ejb.mdb.MessageBeanContainer.deliverMessage(MessageBeanContainer.java:1219)
      	at org.glassfish.ejb.mdb.MessageBeanListenerImpl.deliverMessage(MessageBeanListenerImpl.java:81)
      	at com.sun.enterprise.connectors.inbound.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:171)
      	at com.sun.proxy.$Proxy299.onMessage(Unknown Source)
      	at com.sun.messaging.jms.ra.OnMessageRunner.run(OnMessageRunner.java:283)
      	at com.sun.enterprise.connectors.work.OneWork.doWork(OneWork.java:107)
      	at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497)
      	at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540)
      

      Class def:

      @Entity(name = "CALL_SESSION_TABLE")
      public final class CallSession<T extends TransactionSequence<T>> implements IIsValid, Serializable {
       
      	/**
      	 * 
      	 */
      	private static final long serialVersionUID = 1430258908526999629L;
       
      	@Id
      	@GeneratedValue(strategy = GenerationType.SEQUENCE)
      	private Long id;
       
      	public Long getId() {
      		return id;
      	}
       
      	private void setId(Long id) {
      		this.id = id;
      	}
       
      	public CallSession() {
      	}
       
      	protected CallSession(CallSession<T> inp) {
      		if (inp != null) {
      			this.id = inp.id;
      			if (inp.transactionSequenceHolders != null) {
      				this.transactionSequenceHolders = Lists.newLinkedList();
      				for (TransactionSequenceHolder<T> holder : inp.transactionSequenceHolders) {
      					this.transactionSequenceHolders.add(holder.copy());
      				}
      			}
      		}
      	}
       
       
      	@OneToMany(cascade = CascadeType.ALL)
      	@JoinColumn(name = "CALL_SESSION_ID", unique = false, nullable = false, updatable = false)
      	private List<TransactionSequenceHolder<T>> transactionSequenceHolders;
      

      This table should be empty except for id which is present.

      Attachments

        Activity

          People

            Unassigned Unassigned
            trondarild.tobiassen@gmail.com Trond Arild Lode Tobiassen Heidelberg
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.