JPQL 中的运算符是否等同于SQL BINARY
?
我google了很多,发现没有人提到它。
提前致谢!
对于BINARY运算符,这是MySQL site中的说明。
The BINARY operator casts the string following it to a binary string.
This is an easy way to force a column comparison to be done byte by byte
rather than character by character. This causes the comparison to be case
sensitive even if the column is not defined as BINARY or BLOB. BINARY also
causes trailing spaces to be significant.
mysql> SELECT 'a' = 'A';
-> 1
mysql> SELECT BINARY 'a' = 'A';
-> 0
mysql> SELECT 'a' = 'a ';
-> 1
mysql> SELECT BINARY 'a' = 'a ';
-> 0
BTY,我正在使用MySql 5.6。(虽然我不认为这个问题与MySql有关...)
答案 0 :(得分:0)
我仍然无法在 JPQL 中找到 BINARY
的等效运算符。
但是,如果你遇到这个问题,有一个工作:
在JPA中,只需使用em.createNativeQuery()
,您就可以使用SQL,因此可以使用BINARY
运算符。
像这样:
em.createNativeQuery("SELECT * FROM Student WHERE name=binary'"+ stuName+"'").getResultList();
只需为遇到相同问题的人提供解决方案。
答案 1 :(得分:0)
从@nosnhoj提到的JPA 2.0解决方案是唯一有效的解决方案,直到您想要更改数据库或表的排序规则。我不确定JPA 2.1。谢谢你的帮助。