2014-01-17 71 views
0

JPQL中是否有任何運算符等同於SQL BINARY
我GOOGLE了很多,發現沒有人提到它。什麼是JPQL中的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

我仍然無法找到的BINARY的等效運營 in JPQL
但是,如果遇到此問題,可以採取以下解決方法:
在JPA中,只需使用em.createNativeQuery()即可使用SQL,因此可以使用BINARY運算符。 想要這樣:

em.createNativeQuery("SELECT * FROM Student WHERE name=binary'"+ stuName+"'").getResultList(); 

只是提供那些誰有同樣的問題的解決方案。

+1

這看起來像一個很大的SQL注入目標! –

0

從@nosnhoj提到的JPA 2.0解決方案是唯一的解決方案,直到您想要更改數據庫或表的排序規則爲止。我不確定JPA 2.1。謝謝你的幫助。