Hibernate 表自身映射多对多关系,用户对多朋友
来源:互联网 发布:龙腾世纪3优化差 编辑:程序博客网 时间:2024/05/18 19:18
Entity:
package com.spring.model;import java.util.List;import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.ManyToMany;import javax.persistence.Table;@Entity@Table(name="person")public class Person {private int id;private String name;private int age;private List<Person> friends;@Column(name = "age", length = 3)public int getAge() {return age;}@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Column(name = "ID")public int getId() {return id;}@Column(name = "name", length = 50)public String getName() {return name;}@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, targetEntity = Person.class)@JoinColumn(referencedColumnName = "id",updatable=true, nullable = true)public List<Person> getFriends() {return friends;}public void setAge(int age) {this.age = age;}public void setId(int id) {this.id = id;}public void setName(String name) {this.name = name;}public void setFriends(List<Person> friends) {this.friends = friends;}}
DAO层需要用到marge这个方法:
public void addFriends(final int[] ids, final int id) {Person p = this.template.get(Person.class, id);// pList<Person> flist = p.getFriends();// 原有的朋友List<Person> list = new ArrayList<Person>();// new friendsfor (int fId : ids) {if (fId != id) {Person f = this.template.get(Person.class, fId);if (!flist.contains(f))list.add(f);}}p.setFriends(list);this.template.merge(p);}
解释:
ids: 是前台传过来的药添加的朋友们的ID
id:用户
思路:
1.自己不能添加自己为朋友;
2.看原来朋友链表里包含要添加的朋友?
3.合并到持久层
- Hibernate 表自身映射多对多关系,用户对多朋友
- Hibernate(七)Hibernate自身一对多和多对多关系映射
- Hibernate(5)自身一对多和多对多关系映射
- Hibernate关系映射之多对多关系
- Hibernate关系(双向一对一、一对多、多对多和自身多对多)映射注解整理
- Hibernate表关系映射之一对多映射
- Hibernate表关系映射之多对多映射
- hibernate 自身多对多
- Hibernate的关系映射多对多
- hibernate之映射关系多对多
- hibernate 映射关系 多对多
- Hibernate多对多关系映射
- Hibernate映射关系-多对多
- Hibernate 多对多关系映射详解
- Java- Hibernate 多对多关系映射
- Hibernate 映射多对多关联关系
- hibernate多对多关系映射
- hibernate中多对多关系映射
- Xcode中使用SVN (SCM) 管理自己的source code
- Xcode中使用SVN (SCM) 管理自己的source code
- WRFV3.3 安装记录
- audiostreamer初识(二)
- 2009-05-27 18:05 fopen 文本文件与二进制文件区别
- Hibernate 表自身映射多对多关系,用户对多朋友
- 项目 从Myclipse web 转为 Eclipse web
- cygwin syntax error near unexpected token `$'do\r''
- 谁贪占了我的系统资源 php-fpm
- Xcode4.2+SVN代码管理研究(一)
- Xcode4.2+SVN代码管理研究(二)
- 二维数组与new/delete
- poj 1493 Machined Surfaces
- 服务器×××上的MSDTC不可用解决办法