[英]Hibernate OneToMany bi-directional relation is slow
我有Sessions
和Users
類,具有以下bi-directional
OneToMany
映射(使用hibernate逆向工程工具生成):
public class Users {
@OneToMany(fetch=FetchType.LAZY, mappedBy="users")
public Set<Sessions> getSessionses() {
return this.sessionses;
}
}
public class Sessions {
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="USER_ID")
public Users getUsers() {
return this.users;
}
}
這是我為用戶創建新會話的代碼:
Session s = ...;
Users user = (Users) s.createCriteria(Users.class)
./*restrictions...*/.uniqueResult();
Sessions userSession = new Sessions();
userSession.setUsers(user);
s.save(userSession);
user.getSessionses().add(userSession); // here getSessionses() has 2k records
用戶有2k會話,因此最后一行非常慢。
如何在不提取整個會話集合的情況下將會話與用戶鏈接?
我不能肯定,如果休眠想補充一點連接兩種方式,但不是增加一個Session
的User
設置User
A的Session
。 這樣您就不必加載每個會話。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.