[英]Grails: How to search a key word in encrypted column and get rows
我正在使用grails應用程序,該應用程序可以在數據庫中保存SMS或電子郵件。 這些消息以加密格式保存。
我正在嘗試通過使用關鍵字搜索條件從表中獲取行。 由於已加密,因此無法找到可以使用關鍵字搜索的查詢。
我嘗試將transients
添加到域類並對其進行解密。 這是代碼:
在域類中:
static transients = ['decrypted']
String getDecrypted() {
return DESCodec.decryptText(message)
}
和
def m2 = Messages.findAll {-1 == it.getDecrypted().indexOf("xyz")};
這沒有用。
有人可以告訴我是否可以通過使用加密列中的關鍵字進行搜索來獲取行嗎?
任何幫助真的很感激。
我是否可以建議您閱讀findBy或listOrderBy方法中的“使用過渡屬性” 。
基本上,當您要搬運一個物體時,一個過渡物體就可以使用。 因此,編寫hql /休眠查詢不會真正起作用。 您可能會做得更好,例如:
def m2 = Messages.findAll {-1 == DESCodec.decryptText(it.message).contains("xyz")};
不確定上面上面的內容,您需要嘗試一下
這是你想要做的
def listing = Messages.executeQuery("from Messages" ,[:],[max:-1])
def found = listing.findAll {-1 == it.decrypted.contains("xyz")};
或手動:
def listing = Messages.executeQuery("select new map(id as id, message as message) from Messages" ,[:],[max:-1])
def found = listing.findAll {-1 == DESCodec.decryptText(it.message).contains("xyz")};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.