[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| 
Re: [eclipselink-users] EclipseLink persisting error (Missing mapping	for field)
 | 
Hello Leon,
   Update the industrialFamily mapping to have uppercase columns :
@ManyToOne(cascade=PERSIST)
  @JoinColumn(name="FAMILY_ID", referencedColumnName = "ID")
  private IndustrialFamily industrialFamily;
If this solve your problem please file a bug.
--Gordon
Leon Derks wrote:
Hello
I have another problem.
When I am persisting an object using eclipselink, I get a Missing 
mapping for field error. (see stacktrace below)
Saving the object with Hibernate gives no error.
I have also added a part of my jpa mapping. The strange thing is that 
it is working correctly with hibernate.
Is this a bug?
@Entity
@Table(schema="PLI", name = "PLI_CATALOG_PRODUCTS")
@DiscriminatorColumn(name="PRODUCT_TYPE")
public abstract class CatalogProduct{
     @Id
   @GeneratedValue(generator="seqGen")
   @SequenceGenerator(name="seqGen",sequenceName="PLI_SEQ", 
allocationSize=1)
   private long id;
   private String code;
     @ManyToOne(cascade=PERSIST)
   @JoinColumn(name="family_id", referencedColumnName = "id")
   private IndustrialFamily industrialFamily;
  ......
}
@Table(schema="PLI", name = "PLI_INDUSTRIAL_FAMILIES")
@Entity
public class IndustrialFamily {
     @Id
   @GeneratedValue(generator="seqGen")
   @SequenceGenerator(name="seqGen",sequenceName="PLI_SEQ", 
allocationSize=1)
   private long id;
    .....
}
Tables:
CREATE TABLE PLI_INDUSTRIAL_FAMILIES
(
ID NUMBER(10, 0) NOT NULL,
CODE VARCHAR2(20) NOT NULL,
NAME VARCHAR2(100) NOT NULL
)
;
CREATE TABLE PLI_CATALOG_PRODUCTS
(
ID NUMBER(10, 0) NOT NULL,
CODE VARCHAR2(500) NOT NULL,
FAMILY_ID NUMBER(10, 0) NOT NULL
)
;
javax.persistence.RollbackException: Exception [EclipseLink-45] 
(Eclipse Persistence Services - 1.0 (Build SNAPSHOT - 20080409)): 
org.eclipse.persistence.exceptions.DescriptorException
Exception Description: Missing mapping for field 
[PLI.PLI_INDUSTRIAL_FAMILIES.id].
Descriptor: RelationalDescriptor(********.model.IndustrialFamily --> 
[DatabaseTable(PLI.PLI_INDUSTRIAL_FAMILIES)])
   at 
org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commitInternal(EntityTransactionImpl.java:109) 
   at 
org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commit(EntityTransactionImpl.java:70) 
   at ********.test.ImportTest.testSaveImport(ImportTest.java:44)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
   at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
   at java.lang.reflect.Method.invoke(Method.java:597)
   at junit.framework.TestCase.runTest(TestCase.java:154)
   at junit.framework.TestCase.runBare(TestCase.java:127)
   at junit.framework.TestResult$1.protect(TestResult.java:106)
   at junit.framework.TestResult.runProtected(TestResult.java:124)
   at junit.framework.TestResult.run(TestResult.java:109)
   at junit.framework.TestCase.run(TestCase.java:118)
   at junit.framework.TestSuite.runTest(TestSuite.java:208)
   at junit.framework.TestSuite.run(TestSuite.java:203)
   at 
org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) 
   at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
   at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) 
   at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) 
   at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) 
   at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) 
Caused by: Exception [EclipseLink-45] (Eclipse Persistence Services - 
1.0 (Build SNAPSHOT - 20080409)): 
org.eclipse.persistence.exceptions.DescriptorException
Exception Description: Missing mapping for field 
[PLI.PLI_INDUSTRIAL_FAMILIES.id].
Descriptor: RelationalDescriptor(********.model.IndustrialFamily --> 
[DatabaseTable(PLI.PLI_INDUSTRIAL_FAMILIES)])
   at 
org.eclipse.persistence.exceptions.DescriptorException.missingMappingForField(DescriptorException.java:938) 
   at 
org.eclipse.persistence.internal.descriptors.ObjectBuilder.extractValueFromObjectForField(ObjectBuilder.java:1856) 
   at 
org.eclipse.persistence.mappings.OneToOneMapping.writeFromObjectIntoRow(OneToOneMapping.java:1058) 
   at 
org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildRow(ObjectBuilder.java:830) 
   at 
org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildRow(ObjectBuilder.java:818) 
   at 
org.eclipse.persistence.internal.queries.DatabaseQueryMechanism.insertObjectForWrite(DatabaseQueryMechanism.java:430) 
   at 
org.eclipse.persistence.queries.InsertObjectQuery.executeCommit(InsertObjectQuery.java:78) 
   at 
org.eclipse.persistence.queries.InsertObjectQuery.executeCommitWithChangeSet(InsertObjectQuery.java:88) 
   at 
org.eclipse.persistence.internal.queries.DatabaseQueryMechanism.executeWriteWithChangeSet(DatabaseQueryMechanism.java:290) 
   at 
org.eclipse.persistence.queries.WriteObjectQuery.executeDatabaseQuery(WriteObjectQuery.java:58) 
   at 
org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:653) 
   at 
org.eclipse.persistence.queries.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:576) 
   at 
org.eclipse.persistence.queries.ObjectLevelModifyQuery.executeInUnitOfWorkObjectLevelModifyQuery(ObjectLevelModifyQuery.java:114) 
   at 
org.eclipse.persistence.queries.ObjectLevelModifyQuery.executeInUnitOfWork(ObjectLevelModifyQuery.java:86) 
   at 
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2603) 
   at 
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1061) 
   at 
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1045) 
   at 
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:991) 
   at 
org.eclipse.persistence.internal.sessions.CommitManager.commitNewObjectsForClassWithChangeSet(CommitManager.java:254) 
   at 
org.eclipse.persistence.internal.sessions.CommitManager.commitAllObjectsForClassWithChangeSet(CommitManager.java:229) 
   at 
org.eclipse.persistence.internal.sessions.CommitManager.commitAllObjectsWithChangeSet(CommitManager.java:185) 
   at 
org.eclipse.persistence.internal.sessions.AbstractSession.writeAllObjectsWithChangeSet(AbstractSession.java:2991) 
   at 
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabase(UnitOfWorkImpl.java:1240) 
   at 
org.eclipse.persistence.internal.jpa.RepeatableWriteUnitOfWork.commitToDatabase(RepeatableWriteUnitOfWork.java:416) 
   at 
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabaseWithChangeSet(UnitOfWorkImpl.java:1332) 
   at 
org.eclipse.persistence.internal.jpa.RepeatableWriteUnitOfWork.commitRootUnitOfWork(RepeatableWriteUnitOfWork.java:145) 
   at 
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitAndResume(UnitOfWorkImpl.java:1000) 
   at 
org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commitInternal(EntityTransactionImpl.java:91) 
   ... 20 more
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users