私はデータベースにSMSまたは電子メールを保存できるgrailsアプリケーションに取り組んでいます。これらのメッセージは暗号化された形式で保存されます。Grails:暗号化された列のキーワードを検索して行を取得する方法
キーワード検索基準を使用してテーブルから行を取得しようとしています。これは暗号化されているため、キーワードで検索できるクエリを見つけることができません。
ドメインクラスにtransients
を追加して復号化しようとしました。ここでは、コードです:ドメインクラスの
:
static transients = ['decrypted']
String getDecrypted() {
return DESCodec.decryptText(message)
}
と
動作しませんでしたdef m2 = Messages.findAll {-1 == it.getDecrypted().indexOf("xyz")};
。
暗号化された列のキーワードを使用して検索することで行を取得する方法があるかどうか教えてもらえますか?
本当にありがとうございました。
ご迷惑をおかけいたします。私がコードを疲れさせたとき、 'method:static security.DESCodec.decryptText()のシグネチャは引数タイプには適用できません:(grails.gorm.DetachedCriteria)values:[[email protected] ] ' – User12111111
あなたは実験が必要です。あなたがオブジェクトを持っているとき、それはおそらく 'Messages.findAll()。findAll {-1 == it.decrypted.indexOf(" xyz ")};'これは後でgrailsで動作するかどうかを確かめます。しかし、すべてのオブジェクトを取得してコレクションをチェックするクエリがキーです。欠点は明らかにすべてのデータを収集することです – Vahid
はい、それが理由です。すべてのデータを収集するとプロセスが遅くなります。 – User12111111