Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JPQL+;指导方针_Java_Mysql_Sql_Database_Jpa - Fatal编程技术网

Java 在JPQL+;指导方针

Java 在JPQL+;指导方针,java,mysql,sql,database,jpa,Java,Mysql,Sql,Database,Jpa,背景: 我有一个用户实体。用户实体看起来像: 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

背景: 我有一个用户实体。用户实体看起来像:

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..
据我所知,JPQL不支持按位操作,因此我必须使用本机查询或尝试将其转换为JPQL等效项,但我不知道该如何实现。你知道吗

你能在这里指导我吗?也许我必须把整个AJAX搜索网页的想法扔进垃圾桶,或者你怎么看?在处理许多标准时,最佳做法是什么


提前感谢

您可以为此使用本机SQL查询

JPQL不直接支持按位运算符,但如果使用EclipseLink,则可以使用SQL运算符

Select u from User u where SQL('((? & ?) ^ ?)', u.rolesBitmask, u.queryRoleBitmask, u.queryRoleBitmask) = 0 and u.name LIKE 'An%' AND u.address LIKE 'Pica%'

Select u from User u where SQL('((? & ?) ^ ?)', u.rolesBitmask, u.queryRoleBitmask, u.queryRoleBitmask) = 0 and u.name LIKE 'An%' AND u.address LIKE 'Pica%'