先说说场景:
我有两个表,一个用户表,一个用户基本信息表
用户表中保存一些不常改的信息,比如用户名 密码等
用户信息表中保存一些可能会被常常更改的东西,如登录时间
用户表 userpo
字段 userpoid username userpass
用户信息表 userinfo
字段 userinfoid redate
因为一个用户表只对应着一个用户信息表,当我们删除用户表时,用户信息表也相应的要被删除。
我们这里可以用到级联保存和删除 ,我们的目的之一就是使用户信息表的id主键和用户表的id主键保持一致
要做到这一点,我们需要做以下三步:
第一步:在各自的实体类中定义对象类,代码如下,代码神略set和get方法
用户信息表定义: private userloginpo ulp; 用户信息表定义 private userlogininfo ulinfo;第二步:定义配置文件
用户表的配置文件如下:
<id name="userid" type="java.lang.Integer">
<column name="userid" />
<generator class="sequence"/>
</id>
神略其他
<one-to-one name="ulinfo" class="emb.model.hibernate.po.userlogininfo" cascade="save-update" />
主要是用户信息表的配置,可能需要我们一点时间来理解:
主要是这里的id配置 <id name="userid" type="java.lang.Integer"> <column name="userid" /> 这里的foreign关键字用以指明,这里的id由ulp来指定 而ulp是什么呢,我们下面的one-to-one已经定义了ulp,即是用户表。 这里我们在保存用户表时就可以自动以用户表的主键id作为用户信息表的主键id了 <generator class="foreign"> <param name="property">ulp</param> </generator> </id> 中间神略其他 <one-to-one name="ulp" class="emb.model.hibernate.po.userloginpo" constrained="true" lazy="proxy"/>
foreign关键字的说明,大家可以查看这里
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情