的背景,这个问题如下:商店“像哈希码”以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