Comments (5)
1、这个根据实际情况选, 比如如果需要顺序 则使用List 否则就是Set
2、因为Set是不允许重复的,所以比如
Set.add(new User())
Set.add(new User())
则使用User的默认id 如果id默认是0 则第二个覆盖第一个; 因此造成问题,所以可以考虑 重写hashCode/equals
1、随机id
2、如果是默认值 则认为不相等
from es.
@manytomany(mappedBy = "roleList", fetch=FetchType.LAZY)
@where(clause="del_flag='"+DEL_FLAG_NORMAL+"'")
@orderby("id") @fetch(FetchMode.SUBSELECT)
@NotFound(action = NotFoundAction.IGNORE)
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public List getUserList() {
return userList;
}
@manytomany(fetch=FetchType.EAGER)
@jointable(name = "sys_user_role", joinColumns = { @joincolumn(name = "user_id") }, inverseJoinColumns = { @joincolumn(name = "role_id") })
@where(clause="del_flag='"+DEL_FLAG_NORMAL+"'")
@orderby("id") @fetch(FetchMode.SUBSELECT)
@NotFound(action = NotFoundAction.IGNORE)
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public List getRoleList() {
return roleList;
}
这样注解下的多对多双向关联,使用List,在通过role.SaveUser(user);的时候,会先执行delete all from user_role,然后再全部insert into。(输出的HQL语句中看出来的这个问题),而使用Set就不会这样,使用Set只会insert新值。
from es.
不建议多对多 还是使用两个一对多把 而且对于你这种用户-角色 根本不推荐这种做法 如一个角色可能对应许多用户 级联查 会全部查出, 也很难优化
使用非关联吧。 我几乎不用多对多(我还没有遇到很合适的场景)
from es.
你可以参考我的设计
from es.
好的@!谢谢您的解答~!感谢~
from es.
Related Issues (20)
- 求解:用tomcat插件启动报错,Could not initialize class org.hibernate.ejb.HibernatePersistence
- 感谢作者的开源项目,和技术博客
- 链接404
- 有个google的插件无法在国内无法获取
- onlineSessionFilter 是干嘛的,怎么没有调用过????
- jcaptcha里的jcaptcha-integration-simple-servlet包没有仓库能找到
- 启动时卡在第一个hibernate语句无法运行 HOT 3
- 涛哥,Controller中标记为@ResponseBody并返回类型为Page<T>的方法,jackson处理响应时如何忽略Page中自身定义的某属性? HOT 1
- 涛哥,我最近在研究es的代码,问题如下所示:
- we应用中shiro的spring配置SecurityUtils.setSecurityManager问题 HOT 1
- java.lang.ClassCastException: com.sun.proxy.$Proxy76 cannot be cast to org.hibernate.ejb.HibernateEntityManagerFactory HOT 1
- codegen如何运行?
- 启动报错 spring版本不兼容 HOT 1
- 神奇的无限循环登陆问题
- 火狐和IE下无限循环登录,及其他问题 HOT 1
- maven-db-plugin这个插件找不到 HOT 3
- spring speed-up.xml
- 项目启动和响应巨慢,能否优化下? HOT 1
- db-refresh.bat执行过后乱码?
- 导入到eclipse中有如下spring data的error??? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from es.