hibernate 关于联合主键
2016-05-01 00:00
169 查看
摘要: hibernate 关于联合主键
-----------------------------映射文件----------------------------------------------
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.gdpe.compositeKey" auto-import="true">
<class name="User">
<!-- 复合主键映射 -->
<composite-id name="keys">//联合主键对象与实体类定义的引用名必须一致
<key-property name="userName" type="string"></key-property>
<key-property name="address" type="string"></key-property>
</composite-id>
<property name="age" type="int"></property>
</class>
</hibernate-mapping>
-------------------------------联合主键类----------------------------------------------
package cn.gdpe.compositeKey;
import java.io.Serializable;
// 复合主键类
public class CompositeKeys implements Serializable{
private String userName;
private String address;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
------------------------------实体对象类---------------------------------
public class User {
// 名字跟地址,不会重复
private CompositeKeys keys;
private int age;
public CompositeKeys getKeys() {
return keys;
}
public void setKeys(CompositeKeys keys) {
this.keys = keys;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
-----------------------------总结-----------------------------------------
联合主键 就是把需要设为主键的属性 提取出来 重写定义一个主键类(就是一个普通类) 联合主键作为此类的属性
在实体类中 引用该类 映射文件中如上设置。
-----------------------------映射文件----------------------------------------------
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.gdpe.compositeKey" auto-import="true">
<class name="User">
<!-- 复合主键映射 -->
<composite-id name="keys">//联合主键对象与实体类定义的引用名必须一致
<key-property name="userName" type="string"></key-property>
<key-property name="address" type="string"></key-property>
</composite-id>
<property name="age" type="int"></property>
</class>
</hibernate-mapping>
-------------------------------联合主键类----------------------------------------------
package cn.gdpe.compositeKey;
import java.io.Serializable;
// 复合主键类
public class CompositeKeys implements Serializable{
private String userName;
private String address;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
------------------------------实体对象类---------------------------------
public class User {
// 名字跟地址,不会重复
private CompositeKeys keys;
private int age;
public CompositeKeys getKeys() {
return keys;
}
public void setKeys(CompositeKeys keys) {
this.keys = keys;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
-----------------------------总结-----------------------------------------
联合主键 就是把需要设为主键的属性 提取出来 重写定义一个主键类(就是一个普通类) 联合主键作为此类的属性
在实体类中 引用该类 映射文件中如上设置。
相关文章推荐
- Bestcoder #82 Div2 ztr loves lucky numbers(next_permutation)
- Commission
- Selenium 测百度
- Centos7 修改运行级别
- Unity3d之Animation(动画系统)
- 该不该详细打日志
- 又开始折腾装 Linux 虚拟机了
- centos下postgresql安装使用
- Linux test 命令
- 课外书
- 浅谈提高团队成员的工作积极性
- 数据库学习总结-1
- 方法的使用与内存操作
- 数组
- 在 Python 3.4 上安装 OpenCV
- 情不知所起,一“网”而深
- 对象数组、集合、链表(java基础知识十五)
- Ubuntu14.04 Opencv2.4.9交叉编译
- sql编程小结
- Windows版微信表情第二个标签页中表情的奇怪问题