Oracle 数据库 create table person(
id number primary key references passport(id),
name varchar2(20),
age number
);
create table passport(
id number primary key
);create sequence passport_seq
increment by 100000
start with 1;Passport.hbm.xml 配置<hibernate-mapping>
<class name="com.xt.Passport" table="PASSPORT" schema="SYSTEM">
<id name="id" type="java.lang.Long" column="ID" >
<generator class="sequence">
<param name="sequence">passport_seq</param>
</generator>
</id>
<one-to-one name="Person" class="com.xt.Person" cascade="all"></one-to-one>
</class>
</hibernate-mapping>
Person.hbm.xml 配置<hibernate-mapping>
<class name="com.xt.Person" table="PERSON" schema="SYSTEM">
<id name="id" type="java.lang.Long" column="ID" unsaved-value="0">
<generator class="foreign">
<param name="property">ID</param>
</generator>
</id>
<one-to-one name="passport" class="com.xt.Passport" constrained="true" cascade="all"/>
<property name="name" type="java.lang.String">
<column name="NAME" length="20" />
</property>
<property name="age" type="java.lang.Long">
<column name="AGE" precision="22" scale="0" />
</property>
</class>
</hibernate-mapping>
异常:Exception in thread "main" org.hibernate.HibernateException: Unable to resolve property: ID
at org.hibernate.tuple.entity.EntityMetamodel.getPropertyIndex(EntityMetamodel.java:439)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.getPropertyValue(AbstractEntityTuplizer.java:286)
at org.hibernate.persister.entity.AbstractEntityPersister.getPropertyValue(AbstractEntityPersister.java:3586)
at org.hibernate.id.ForeignGenerator.generate(ForeignGenerator.java:39)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:99)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
at org.hibernate.engine.CascadingAction$5.cascade(CascadingAction.java:218)
at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169)
at org.hibernate.engine.Cascade.cascade(Cascade.java:130)
at org.hibernate.event.def.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:456)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:334)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
at com.xt.Operator.add_Passport_Person(Operator.java:21)
at com.xt.Operator.main(Operator.java:27)
id number primary key references passport(id),
name varchar2(20),
age number
);
create table passport(
id number primary key
);create sequence passport_seq
increment by 100000
start with 1;Passport.hbm.xml 配置<hibernate-mapping>
<class name="com.xt.Passport" table="PASSPORT" schema="SYSTEM">
<id name="id" type="java.lang.Long" column="ID" >
<generator class="sequence">
<param name="sequence">passport_seq</param>
</generator>
</id>
<one-to-one name="Person" class="com.xt.Person" cascade="all"></one-to-one>
</class>
</hibernate-mapping>
Person.hbm.xml 配置<hibernate-mapping>
<class name="com.xt.Person" table="PERSON" schema="SYSTEM">
<id name="id" type="java.lang.Long" column="ID" unsaved-value="0">
<generator class="foreign">
<param name="property">ID</param>
</generator>
</id>
<one-to-one name="passport" class="com.xt.Passport" constrained="true" cascade="all"/>
<property name="name" type="java.lang.String">
<column name="NAME" length="20" />
</property>
<property name="age" type="java.lang.Long">
<column name="AGE" precision="22" scale="0" />
</property>
</class>
</hibernate-mapping>
异常:Exception in thread "main" org.hibernate.HibernateException: Unable to resolve property: ID
at org.hibernate.tuple.entity.EntityMetamodel.getPropertyIndex(EntityMetamodel.java:439)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.getPropertyValue(AbstractEntityTuplizer.java:286)
at org.hibernate.persister.entity.AbstractEntityPersister.getPropertyValue(AbstractEntityPersister.java:3586)
at org.hibernate.id.ForeignGenerator.generate(ForeignGenerator.java:39)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:99)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
at org.hibernate.engine.CascadingAction$5.cascade(CascadingAction.java:218)
at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169)
at org.hibernate.engine.Cascade.cascade(Cascade.java:130)
at org.hibernate.event.def.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:456)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:334)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
at com.xt.Operator.add_Passport_Person(Operator.java:21)
at com.xt.Operator.main(Operator.java:27)
解决方案 »
- 为什么我做的网页在本机上图片可以显示,在其它机子上就不能显示???
- applet与servlet通讯的安全权限问题?
- 有关spring的问题
- 关于 session 的 HttpSessionActivationListener 监听器
- 根据某年某月某周得到一个具体的时间范围!
- struts中使用<bean:message key="login.jsp.username" />出现乱码
- 不在web.xml配置session-timeout 实现 session有效期控制
- servlet的默认参数传递
- 在JSP页面中怎样得到所有联接到服务器的session?
- 平安最新的框架pafa5
- session失效问题
- viewport不能操作右侧区域中的数据
Person.hbm.xml 配置写错了<hibernate-mapping>
<class name="com.xt.Person" table="PERSON" schema="SYSTEM">
<id name="id" type="java.lang.Long" column="ID" unsaved-value="0">
<generator class="foreign">
<param name="property">passport</param>
</generator>
</id>
<one-to-one name="passport" class="com.xt.Passport" constrained="true" cascade="all"/>
<property name="name" type="java.lang.String">
<column name="NAME" length="20" />
</property>
<property name="age" type="java.lang.Long">
<column name="AGE" precision="22" scale="0" />
</property>
</class>
</hibernate-mapping>
Exception in thread "main" org.hibernate.id.IdentifierGenerationException: attempted to assign id from null one-to-one property: passport