0
這已被討論了很多(如here和there)和我使用「企業」鍵實現對Hibernate實體,如哈希碼法時,聽起來很有用:實施的hashCode和延遲加載
public class User {
private String username;
...
@Override
public int hashCode() {
//Calculate on base of username
}
}
這比在休眠生成ID的情況下使用ID更好(對於新實體它將爲空)。
如果一個實體僅包含「虛擬」延遲加載的屬性,該怎麼辦? 我可以計算基於它們的hashCode,並做到目前爲止。現在我遇到了這樣的問題:當調用hashCode()
時,會話被關閉,所以懶惰加載的屬性不能再被訪問。在這種情況下該怎麼辦?