表: Role
@ManyToMany()
@JoinTable(name = "T_Role_Staff")
private Set<Staff> staffs = new HashSet<Staff>();表: Staff
@ManyToMany(mappedBy = "staffs", cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
private Set<Role> roles = new HashSet<Role>();客户端代码:
// 添加雇员及权限Staff s1 = new Staff("danielle");
Staff s2 = new Staff("alven");Role r1 = new Role("role1");
Role r2 = new Role("role2");s1.getRoles().add(r1);
s1.getRoles().add(r2);s2.getRoles().add(r1);
s2.getRoles().add(r2);这样添加两个雇员进数据库后 , Role 表的数据重复了,要怎么解决啊
@ManyToMany()
@JoinTable(name = "T_Role_Staff")
private Set<Staff> staffs = new HashSet<Staff>();表: Staff
@ManyToMany(mappedBy = "staffs", cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
private Set<Role> roles = new HashSet<Role>();客户端代码:
// 添加雇员及权限Staff s1 = new Staff("danielle");
Staff s2 = new Staff("alven");Role r1 = new Role("role1");
Role r2 = new Role("role2");s1.getRoles().add(r1);
s1.getRoles().add(r2);s2.getRoles().add(r1);
s2.getRoles().add(r2);这样添加两个雇员进数据库后 , Role 表的数据重复了,要怎么解决啊
解决方案 »
- 在log4j中,怎样将一个filter设置进appender中去
- 利用session对用户是否登录进行过滤的方案
- 计算一年有多少周,每周是几号到几号
- document.forms(0).submit()为什么迟迟之后,才执行
- java的配置问题,高手来帮我看看吧
- 写了一个通过数据库生成XML 程序 有点问题 估计不大
- org.apache.jasper.JasperException我该怎么解决啊
- java如何取得UNIX时间 如 1162017434 这种格式
- 大家都来看看,顶着有分
- 如何实现树型菜单?并能增加、删除、修改!
- 请教java ee方向对java se的要求。
- JDBC executeBatch() 效率低 如何解决
@ManyToMany(mappedBy = "roles")
@JoinTable(name = "T_Role_Staff")
private Set <Staff> staffs = new HashSet <Staff>(); 表: Staff
@ManyToMany( cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
private Set <Role> roles = new HashSet <Role>();
表结构你改一下,按照上面试一试,把维护端改为staff应该可以了。如果维护端是role即使记录插入了,但是他们的关联还是没有插入表的。
@ManyToMany(mappedBy = "roles")
private Set <Staff> staffs = new HashSet <Staff>(); 表: Staff
@ManyToMany( cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
@JoinTable(name = "T_Role_Staff")
private Set <Role> roles = new HashSet <Role>();
一个博客,可以有多个附件,反过来,也允许一个附件属于多个博客(共享)
博客表:T_BLOG 主键ID
中间表:T_BLOG_ATTACHMENT( BLOGID,ATTACHMENT_ID) 就2个字段做联合主键
附件表:T_ATTACHMENT 主键ID
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name = "T_BLOG_ATTACHMENT", joinColumns = @JoinColumn(name = "BLOG_ID", referencedColumnName = "ID"), inverseJoinColumns = @JoinColumn(name = "ATTACHMENT_ID", referencedColumnName = "ID"))
private List<Attachment> attachments;