Hibernate多列作为联合主键(六)
来源:互联网 发布:淘宝装修日记精华帖 编辑:程序博客网 时间:2024/04/28 14:26
如果需要直接将持久类的多列映射成联合主键,则该持久化类必须满足如下条件:
1) 有无参数的构造器。
2) 必须实现java.io.Serializeble接口。
3) 建议正确地重写equals()和hashCode()方法,也就是根据组件类的关键属性来区分组件对象。
下面是一个Person的类。
@Entity@Table(name="person_inf")public class Personimplements java.io.Serializable{// 定义first属性,作为标识属性的成员@Idprivate String first;// 定义last属性,作为标识属性的成员@Idprivate String last;private int age;// first的setter和getter方法public void setFirst(String first){this.first = first;}public String getFirst(){return this.first;}// last的setter和getter方法public void setLast(String last){this.last = last;}public String getLast(){return this.last;}// age的setter和getter方法public void setAge(int age){this.age = age;}public int getAge(){return this.age;}// 重写equals()方法,根据first、last进行判断public boolean equals(Object obj){if (this == obj){return true;}if (obj != null && obj.getClass() == Person.class){Person target = (Person)obj;return target.getFirst().equals(getFirst())&& target.getLast().equals(getLast());}return false;}// 重写hashCode()方法,根据first、last计算hashCode值public int hashCode(){return getFirst().hashCode() * 31+ getLast().hashCode();}}
下面是执行用的类:
public class PersonManager{public static void main(String[] args){PersonManager mgr = new PersonManager();mgr.createAndStorePerson();HibernateUtil.sessionFactory.close();}private void createAndStorePerson(){Session session = HibernateUtil.currentSession();Transaction tx = session.beginTransaction();// 创建Person对象Person person = new Person();person.setAge(29);person.setFirst("owen.org");person.setLast("Hibernate");session.save(person);tx.commit();HibernateUtil.closeSession();}}
结果图:
0 0
- Hibernate多列作为联合主键(六)
- 映射组件属性之⑥:多列作为联合主键
- 在持久化类中声明多列作为联合主键
- Hibernate基础之六:联合主键@EmbeddedId
- hibernate联合主键(转)
- 在Hibernate中使用联合主键作为外键
- mysql 增加一列,并且使用这一列联合其他的列作为联合主键。
- Hibernate 中的联合主键
- hibernate 联合主键
- hibernate操作联合主键
- Hibernate 中的联合主键
- hibernate 联合主键 merge
- Hibernate联合主键
- hibernate 联合主键
- hibernate联合主键关联
- hibernate联合主键
- 慎用hibernate联合主键
- hibernate 联合主键
- BZOJ 3504
- #define和const之间的对比分析
- CXX0025: 错误: 运算符要求类/结构/联合
- XML简介及解析
- 二叉树的镜像
- Hibernate多列作为联合主键(六)
- aop:aspectj-autoproxy 不能生效
- THE Perceptron Convergence Theorem
- 队列的基本操作
- Netbeans jdkhome 配置
- nyoj 飞翔d
- c语言操作数据库sql
- UESTC--1253--阿里巴巴和n个大盗(博弈)
- /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory