나는 데이터베이스에 SMS 또는 전자 메일을 저장할 수있는 grails 응용 프로그램을 작성 중입니다. 이 메시지는 암호화 된 형식으로 저장됩니다.Grails : 암호화 된 열의 키워드를 검색하고 행을 검색하는 방법
키워드 검색 기준을 사용하여 테이블에서 행을 가져 오려고합니다. 암호화되어 있으므로 키워드로 검색 할 수있는 검색어를 찾을 수 없습니다.
도메인 클래스에 transients
을 추가하고 암호 해독을 시도했습니다.
도메인 클래스 :
static transients = ['decrypted']
String getDecrypted() {
return DESCodec.decryptText(message)
}
및
def m2 = Messages.findAll {-1 == it.getDecrypted().indexOf("xyz")};
작동하지 않았다 여기에 코드입니다.
암호화 된 열의 키워드를 사용하여 검색하여 행을 가져 오는 방법이 있는지 누군가가 알 수 있습니까?
정말 감사드립니다.
귀하의 sugggestion에 감사드립니다. 코드가 싫증이났다면 메소드의 서명 없음 : static security.DESCodec.decryptText()가 인수 유형에 적용 가능하다는 오류가 나타납니다. (grails.gorm.DetachedCriteria) values : [[email protected] ] ' – User12111111
실험을해야합니다. 당신이 객체를 가지고있을 때 복호화 된 값을 가지기 때문에 아마도'Messages.findAll(). findAll (-1) == it.decrypted.indexOf ("xyz")};'두 번의 findAll은 이후 grails에서 작동 하는지를 확신 할 수 없습니다. 그러나 모든 객체를 가져와 컬렉션을 통해 확인하는 쿼리가 핵심입니다. 단점은 모든 데이터를 분명히 수집해야한다는 것입니다. – Vahid
네, 그 이유가 있습니다. 모든 데이터를 수집하면 프로세스가 느려집니다. – User12111111