hibernate中的many-to-many问题

原创 2015年07月09日 09:18:39
//此为一个News类
@SuppressWarnings("deprecation")
@Entity
@Indexed(index="News")
public class News implements Serializable{
    private Set<User> users=new HashSet<User>();

@ManyToMany(cascade = CascadeType.PERSIST, fetch = FetchType.EAGER, mappedBy="news")
	public Set<User> getUser() {
		return users;
	}
	public void setUser(Set<User> user) {
		this.users = users;
	}
}

//此为一个User类
@Entity
@Table(name = "user")
public class User implements Serializable{
   private Set<News> news = new HashSet<News>();
   @ManyToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
	@JoinTable(name = "User_News",   
		joinColumns ={@JoinColumn(name = "user_ID", referencedColumnName = "id") },   
		inverseJoinColumns ={@JoinColumn(name = "news_ID", referencedColumnName = "id") } 
	)  
	public Set<News> getNews() {
		return news;
	}
	public void setNews(Set<News> news) {
		this.news = news;
	}
	public void addTargetNews(News news) {
		this.news.add(news);
	}
}
News类和User类为多对多关系,这里需要注意两点:1、注意News类中<span style="font-family: Arial, Helvetica, sans-serif;">mappedBy,拥有这个字段的类为被控类,被控类中的数据删除受到主控类的限制,若主控类中还有被控类中数据的引用,则被控类中的数据不能被删除;2、User类中的JoinTable为主控类所有,代表多对多关系的一个独立的表,name为表名,joinColumns代表此此类在表中的关系,name为此类对应表的字段名,referencedColumnName代表本类的主键名,同理inverseJoinColumns为表的另一端的关系,即News方。</span><pre name="code" class="java">


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

hibernate 的many to one 的问题IllegalArgumentException occurred while calling setter of hibernatePOJO

package com.oyth.model; public class Book { private int BookID; private String BookName; pri...

Hibernate-one-to-many

  • 2011-12-15 08:01
  • 98KB
  • 下载

Hibernate基于注解的双向one-to-many映射关系的实现

2、Hibernate基于注解的双向one-to-many映射关系的实现项目中用到了一对多的实体类关系映射,之前接触的都是基于配置文件的映射实现,但是公司的大部分都是基于注解的,因此自己参考之前的代码...

Hibernate – One-To-Many Example (Annotation)

1. “One-To-Many” 表关系 2. Hibernate 实体类 Stock.java package com.mkyong.stock; impo...

hibernate映射文件many-to-one 元素属性

name:映射类属性的名字 column:关联的字段 class:关联类的名字 cascade:设置操作中的级联策略 可选值为 all所有操作情况均进行级联、none所有操作情况均不进行级联、s...

hibernate映射技巧one-to-many(单项一对多)

一对多关系在系统实现中也很常见。典型的例子就是父亲与孩子的关系。 而在我们现在的这个示例中,每个用户(TUser)都关联到多个地址(TAddress),如一个用户可能拥有办公室地址、家庭地址等多个地址...

hibernate+Struts2+json,@JSON(serialize=false) 失效,one to many org.apache.struts2.json.JSONException

hibernate+Struts2+json,使用@JSON(serialize=false) 排除不需要的属性set users 但是不成功报错 解决:对于one to many,需要...

Java EE 之Hibernate初步接触 one-to-many

Hibernate本质上就是对JDBC的封装 在使用Hibernate的时候,我们需要先书写hibernate.cfg.xml文件,在这个文件中包含了我们所需要连接的数据库的账号密码,以及jdbc驱动...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)