Ich versuche, eine unveränderliche Eigenschaft mit zugrunde liegenden DB mit Hibernate abzubilden und hier ist die Zuordnungsdatei Snapshot für die gleicheMapping unveränderliche Eigenschaften Hibernate
<hibernate-mapping default-access="field">
<!-- Immutable property -->
<property name="creationDate" column="CREATIONDATE" type="timestamp"
update="false" not-null="true" />
i jede Eigenschaft nicht in mit dem Namen creation erklärt haben meine Klasse und Hibernate ist mich mit dem folgenden Fehler beschweren
org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:110)
at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:135)
at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:80)
at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:323)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:456)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:131)
at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:267)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1341)
at com.raisonne.tr.persistence.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:161)
at com.raisonne.tr.persistence.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:72)
at com.raisonne.tr.dao.impl.GenericDAOImpl.makePersistance(GenericDAOImpl.java:173)
at com.raisonne.tr.service.impex.impl.DestinationImportServiceImpl.startDestinationImport(DestinationImportServiceImpl.java:130)
at com.raisonne.tr.backoffice.actions.impex.DestinationImportAction.destinationImport(DestinationImportAction.java:118)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
Caused by: org.hibernate.PropertyNotFoundException: field [creationDate] not found on com.tr.category.Category
at org.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:145)
at org.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:137)
at org.hibernate.property.DirectPropertyAccessor.getGetter(DirectPropertyAccessor.java:160)
at org.hibernate.mapping.Property.getGetter(Property.java:294)
at org.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertyGetter(PojoEntityTuplizer.java:300)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:141)
at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:78)
i wurde nach Hibernate CaveatEmptor Anwendung i auch nicht in der Lage jede Eigenschaft mit dem Namen creation in der angesehenen Klasse in CaveatEmptor zu sehen (vor allem für creatiodate).
Ich denke nur, wie wir solche Eigenschaften am besten mit Hiberntae abbilden können.
Vielen Dank im Voraus
Ich verstehe es nicht. Sie haben creationDate in Ihrer Datenbank, aber Sie haben es nicht in Ihrem Java? – jpkrohling
@Partenon ja, was ich will ist, dass, wenn immer eine Entität in der Tabelle persistieren wird, sollte es Informationen haben, wenn es erstellt wurde, und dafür sehe ich keinen Grund, in meiner Java-Entity-Klasse proprty zu deklarieren. –