错误信息
Exception in thread "main" org.hibernate.id.IdentifierGenerationException: attempted to assign id from null one-to-one property: person
at org.hibernate.id.ForeignGenerator.generate(ForeignGenerator.java:68)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:122)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:562)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:550)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:546)
at csh.test.onetoone.add(onetoone.java:33)
at csh.test.onetoone.main(onetoone.java:18)
java代码
                   Session s=null;
Transaction tx=null;
try{
s=HibernateUtil.getSession();
tx=s.beginTransaction();
Person person=new Person();
person.setName("chensonghe");
Idcard idcard=new Idcard();
idcard.setName("mingpian");
person.setIdcard(idcard);

s.save(person);
s.save(idcard);

tx.commit();
return person;
}finally{
if(s!=null) s.close();
} 主映射文件<?xml version="1.0"?>
  <!DOCTYPE hibernate-mapping PUBLIC
   "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="csh.domain">
<class name="Person">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
<one-to-one name="idcard"></one-to-one>
</class>
</hibernate-mapping>副映射文件<?xml version="1.0"?>
  <!DOCTYPE hibernate-mapping PUBLIC
   "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="csh.domain">
<class name="Idcard">
<id name="id">
<generator class="foreign">
<param name="property">person</param>
</generator>

</id>
<property name="name"></property>
<one-to-one name="person" constrained="true"></one-to-one>
</class>
</hibernate-mapping>