Coder Social home page Coder Social logo

请教 about es HOT 5 CLOSED

zhangkaitao avatar zhangkaitao commented on June 16, 2024
请教

from es.

Comments (5)

zhangkaitao avatar zhangkaitao commented on June 16, 2024

1、这个根据实际情况选, 比如如果需要顺序 则使用List 否则就是Set
2、因为Set是不允许重复的,所以比如
Set.add(new User())
Set.add(new User())

则使用User的默认id 如果id默认是0 则第二个覆盖第一个; 因此造成问题,所以可以考虑 重写hashCode/equals
1、随机id
2、如果是默认值 则认为不相等

from es.

 avatar commented on June 16, 2024

@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.

zhangkaitao avatar zhangkaitao commented on June 16, 2024

不建议多对多 还是使用两个一对多把 而且对于你这种用户-角色 根本不推荐这种做法 如一个角色可能对应许多用户 级联查 会全部查出, 也很难优化

使用非关联吧。 我几乎不用多对多(我还没有遇到很合适的场景)

from es.

zhangkaitao avatar zhangkaitao commented on June 16, 2024

你可以参考我的设计

from es.

 avatar commented on June 16, 2024

好的@!谢谢您的解答~!感谢~

from es.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.