jpa manyTOMany映射笔记

 看了好多资料,终于弄出来了

 

 代码如下 复制代码

 

import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.ManyToMany;

import cn.yulezu.orm.hibernate.BaseEntity;

@Entity
public class Module extends BaseEntity {

 private String title;
 private String descn;
 private String path;
 @ManyToMany(mappedBy = "modules")//modules为administator里面的字段
 private Set<Administator> administators;

 public String getTitle() {
  return title;
 }

 public void setTitle(String title) {
  this.title = title;
 }

 public String getDescn() {
  return descn;
 } www.111Cn.net

 public void setDescn(String descn) {
  this.descn = descn;
 }

 public String getPath() {
  return path;
 }

 public void setPath(String path) {
  this.path = path;
 }

 public Set<Administator> getAdministators() {
  return administators;
 }

 public void setAdministators(Set<Administator> administators) {
  this.administators = administators;
 }

}

------------------------------------------administator----------------

import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;

import cn.yulezu.orm.hibernate.BaseEntity;

@Entity
public class Administator extends BaseEntity {

 // columns START
 private String account;
 private String password;

 @ManyToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
 @JoinTable(name = "Administator_Module", joinColumns = { @JoinColumn(name = "Administator_ID", referencedColumnName = "id") }, inverseJoinColumns = { @JoinColumn(name = "Module_ID", referencedColumnName = "id") })//id分别为这两张表的主键
 private Set<Module> modules;

 public Set<Module> getModules() {
  return modules;
 }

 public void setModules(Set<Module> modules) {
  this.modules = modules;
 }

 public String getAccount() {
  return account;
 }

 public void setAccount(String account) {
  this.account = account;
 }

 public String getPassword() {
  return password;
 }

 public void setPassword(String password) {
  this.password = password;
 }

 

}

-----------------------------baseentity-------------------

@MappedSuperclass
public class BaseEntity
{
 @Id
 //主键自动生成策略:数据库自动增长
 @GeneratedValue
 //主键
 protected Integer id;
 //是否显示
 @Column(nullable=false)
 protected boolean visible = true;
 //插入时间
 @Temporal(TemporalType.TIMESTAMP)
 @Column(nullable=false,updatable=false)
 protected Date insertTime;
 //最后一次修改时间
 @Temporal(TemporalType.TIMESTAMP)
 protected Date lastUpdateTime;

 public Integer getId()
 {
  return id;
 }

 public void setId(Integer id)
 {
  this.id = id;
 }

www.111cn.net

 public boolean isVisible()
 {
  return visible;
 }

 public void setVisible(boolean visible)
 {
  this.visible = visible;
 }

 public Date getInsertTime()
 {
  return insertTime;
 }

 public void setInsertTime(Date insertTime)
 {
  this.insertTime = insertTime;
 }

 public Date getLastUpdateTime()
 {
  return lastUpdateTime;
 }

 public void setLastUpdateTime(Date lastUpdateTime)
 {
  this.lastUpdateTime = lastUpdateTime;
 }

 /**
  * 是否是新对象
  * @return
  */
 public boolean isNew()
 {
  return (this.id == null);
 }

}

就这样,完成管理员与模块之间的多对多关系映射

时间: 2024-11-05 16:32:57

jpa manyTOMany映射笔记的相关文章

Active Record学习笔记(四):处理Many-To-Many映射

本文主要描述了如何使用Castle.ActiveRecord处理Many-To-Many映射.本文主要涉及了两个类:Student(学生).Subject(学科),这两个类的关系是多对多的,因为一个学生学习多个学科,一个学科可以被多个学生学,下面是类图: 主要内容: 1.编写数据库脚本 2.HasAndBelongsToMany属性说明 3.编写实体类 4.编写调用代码 一.编写数据库脚本 由于Student与Subject是多对多关系,这里加入一个关联表Student_Subject来保存这些

jboss-使用JPA @ManyToMany做双向关联时mappedBy报错

问题描述 使用JPA @ManyToMany做双向关联时mappedBy报错 提示:In attribute 'testA' the ""mapped by"" attribute 'testB' has an invalid mapping type for this relationship. 代码如下:@Entity(name=""testa"")public class TestA { Long id; List te

Hibernate之jpa实体映射的三种继承关系

在JPA中,实体继承关系的映射策略共有三种:单表继承策略(table per class).Joined策略(table per subclass)和Table_PER_Class策略.   1.单表继承策略         单表继承策略,父类实体和子类实体共用一张数据库表,在表中通过一列辨别字段来区别不同类别的实体.具体做法如下: a.在父类实体的@Entity注解下添加如下的注解: @Inheritance(Strategy=InheritanceType.SINGLE_TABLE)@Dis

spring data jpa 关系映射问题

问题描述 一个学校类,一个班级类学校与班级是一对多的关系我这样配置TSchoolInf类里这样配置@OneToMany(mappedBy="schoolInf")privateList<TClassInf>classInf;TClassInf类里这样配置@ManyToOne(fetch=FetchType.LAZY)@JoinColumn(name="school_id")privateTSchoolInfschoolInf;但是在程序启动的时候报这个错

Hibernate(JPA)多对多(ManyToMany)关联映射不完美之处

近来,在做的一个NewsMS项目中,需要用到多对多关联映射,以下是项目中用到的两个实体类:用户类User和角色类Role,它们之间是多对多的关系. //用户表 @Entity @Table(name="rong_user") public class User{ //省略其它内容 private Set<Role> roles = new LinkedHashSet<Role>(); //角色集合 @ManyToMany(cascade = {CascadeTy

NHibernate3剖析:Mapping篇之ConfORM实战(4):ManyToMany语义

ConfORM概述 如果你不熟悉ConfORM请查看前几篇文章,你可以到http://code.google.com/p/codeconform/获取ConfORM最新版本. 在Domain设计中经常使用集合,在.Net中的集合有四种:Iesi.Collections.Generic.ISet<T>.System.Collections.Generic.ICollection<T>.System.Collections.Generic.IList<T>.System.C

一起谈.NET技术,NHibernate3剖析:Mapping篇之ConfORM实战(4):ManyToMany语义

ConfORM概述 如果你不熟悉ConfORM请查看前几篇文章,你可以到http://code.google.com/p/codeconform/获取ConfORM最新版本. 在Domain设计中经常使用集合,在.Net中的集合有四种:Iesi.Collections.Generic.ISet<T>.System.Collections.Generic.ICollection<T>.System.Collections.Generic.IList<T>.System.C

Java Persistence API中带注释的命名查询是否真的非常有用?

对注释的注释 Java Persistence API (JPA) 定义了访问数据的多种方法:通过实体管理器.通过 JPA-QL 或通过本机查询.在 JPA 中,注释用作将 Java 对象映射到底层数据库的一种机制.您还可以提供 XML 元数据作为映射注释的覆盖或备选机制.不过,我看到的大多数 JPA 使用情况都明显喜欢使用注释.规范文档使用注释,而不使用基于 XML 的映射示例(仅向您显示 XML 模式)来表示所有示例这一事实可能是覆盖的原因之一.创建对象关系映射,以便从 Java 对象模型抽

请求-求助啊!!var id=$(this).attr(&amp;amp;#39;id&amp;amp;#39;); 和 $(this).empty(); 怎么结合

问题描述 求助啊!!var id=$(this).attr('id'); 和 $(this).empty(); 怎么结合 已经获得各个id ... $(document).ready(function(){ $('div').click(function(){ var id=$(this).attr('id'); alert(id); //可以得到某个id的值 var aurl=""<%=basePath%>/colV.action""; var ada