2009-01-28 22 views
8

我試圖使用JPA EntityManager find()方法。我的主鍵是一個與用戶名相對應的字符串。JPA EntityManager查找區分大小寫的鍵

我正在使用JPA/Hibernate/MYSQL。

我的問題是搜索用戶'大衛'匹配用戶'大衛',因爲我假設,在底層MYSQL不區分大小寫的字符串匹配。這使我產生了一大堆問題!

有沒有人得到一個優雅的解決方案呢?我可以做一個本地SQL調用,並使用BINARY運算符,如下所述: http://dev.mysql.com/doc/refman/5.0/en/charset-binary-op.html

任何人都有更好的解決方案嗎? Ta。

+0

跑進今天這個,這是2017年,這還不是固定的。我在mysql和em.find中有'Ken'(類,'ken')返回一個用戶名'ken'的對象。導致與此用戶相關的其他對象在刪除時拋出FK無效。 – 2017-01-05 08:36:19

回答

3

您可以更改列類型,使其不區分大小寫嗎? MySQL guide有關於如何這樣做的信息。

這或多或少是你發現的二元運算符,但它適用於列類型,而不是當你運行一個選擇