背景: 我有一个用户实体。用户实体的样子:这条SQL语句是否可以在JPQL +准则中使用?
private String name;
private String address;
private List<Picture> pictureList; //The users pictures
private int rolesBitmask; //Is a bitmask for around 20 different roles
private int anotherBitmask; //Is similar bitmask as the roles
//
// Maybe 20 more fields..
我将有一个AJAX搜索网页,将在所有这些领域执行JPQL查询(也许不是照片,但对于大多数字段)。
例如,网络用户可能在名为“An%”的用户中搜索,生活在地址如“Pica%”上,具有角色“打印机”,“管理员”,“访客”关心可用角色的其余部分。根据预定义值将“打印机”,“管理员”和“访客”角色解释为位掩码。
我的第一个问题:
它是一个坏主意,做这些类型的查询中只有1 JPQL /不管查询?
第二个问题: 如果我决定去与这些“复杂”查询怎么样的性能(请记住,这是一个AJAX网页每个用户正在改变的时间,这可能是一个新的数据库访问形成)。
第三个问题: 在SQL我会做这样的事情来获得与名称,地址和角色的所有用户:
SELECT * FROM User WHERE (rolesBitmask & queryRoleBitmask)^queryRoleBitmask = 0 AND name LIKE 'An%' AND address LIKE 'Pica%';
由于FAS我所知,JPQL不支持位操作,所以我不得不使用原生查询或尝试将其转换为JPQL等价物,但我不知道我该如何去做。你做?
你能指导我在这里,也许我必须把这整个AJAX搜索网页的想法扔到thrashcan,或者你怎么看待它?当你处理很多标准时,最佳做法是什么?
在此先感谢
感谢=) – kungcc 2012-08-23 17:38:53