1.
<hibernate-mapping>
<class name="one.profile.Userprofile"  table="Zuserprofile"
catalog="manage" >
<cache usage="read-write"/>
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="foreign" >
<param name="property">user</param>
</generator>
</id>
<property name="address" type="java.lang.String">
<column name="address" not-null="true" />
</property>
<property name="phone" type="java.lang.String">
<column name="phone" not-null="true" unique="true" />
</property>
<property name="card" type="java.lang.String">
<column name="card" not-null="true" unique="true" />
</property>
       <one-to-one name="user" class="one.user.User" constrained="true"  lazy="proxy" fetch="join" ></one-to-one>
</class>
</hibernate-mapping>
2
<class name="one.user.User" table="zuser" catalog="manage" >
     <cache usage="read-write"/>
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="increment" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="name" not-null="true" />
        </property>
        <property name="pwd" type="java.lang.String">
            <column name="pwd" not-null="true" />
        </property>
        <one-to-one name="userprofile" class="one.profile.Userprofile" lazy="no-proxy" fetch="join"></one-to-one> 
       
        </class>
         
</hibernate-mapping>
看相关资料介绍说是 constrained="true"表示 附属表userprofile的主键id 是引用的主表user的主键id  但是我不设置这个属性  由于数据库 设计时本来 就是把附 属表userprofile的主键id 来 作为外键 去关联 主表user的主键id  的 在save()时 他也会去根据关系 自动获取 user表的的 id 来赋给userprofile的主键id 好像  constrained="true" 显得多余了 不明白有什么意义  但是看到很多<one-to-one>的例子 都设置了这个属性  求大虾解释