2012-08-04 73 views
0

背景: 我有一个用户实体。用户实体的样子:这条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,或者你怎么看待它?当你处理很多标准时,最佳做法是什么?

在此先感谢

回答

相关问题