的背景,這個問題如下:商店「像哈希碼」以dB爲布爾類字段的描述以提高性能,並命名查詢短
Hash code for expandable class (future proof)
不過,我應該提到我爲什麼想知道這一點。
我有一個有許多角色(布爾字段)的類。我不想做命名查詢(JPA)像
@NamedQuery(name= "searchUserWithRoles", query="SELECT u FROM User u WHERE u.role.admin = :admin AND u.role.printer = :printer AND ... .. . .+ 20 more booleans...)
我的想法是讓在角色類中的所有領域,這降低了命名查詢到對應的哈希碼(或類似):
@NamedQuery(name= "searchUserWithRoles", query="SELECT u FROM User u WHERE u.role.hashcode = :hashcode)
我認爲(但我不確定)這會提高性能,但也使我的查詢非常短(我有更多的「角色」像我的用戶類中的字段)。
此外,當我更新角色類與更多角色字段我不需要更新命名的查詢。
這就是第一個問題的背景。
新的問題是:有什麼方法可以在Role類中生成一個「hashcode like」字段,該字段是對所有字段是true的描述(即使Role類用更多字段更新)?
在此先感謝
感謝Jon,我認爲你的解決方案將完全適合我的應用。我會去那=) – kungcc 2012-08-04 09:04:59