2010-04-30 11 views
1

레코드가 삽입 된 후 트리거에 의해 암호화 될 열이있는 테이블이 있습니다. 컬럼을 읽을 때, 나는 hibernate 도메인 클래스에서 decrypt 함수를 적용 할 필요가있다.컬럼이있는 최대 절전 모드

개체를 저장하는 동안 열의 값이 그대로 저장됩니다. 열을 읽는 동안 읽은 데이터에 데이터베이스 기능을 적용하십시오. @Formula@Column 주석은 엔티티 클래스의 속성에 적용 할 수 없습니다. 저장을 위해 하나의 속성을 사용하지 않고이 기능을 수행하려면 어떻게해야합니까? 또 하나의 속성을 읽는 데 @Formula을 사용하면 어떻게됩니까?

+0

나는 내 대답에서 문제의 중요한 부분을 놓쳤습니다. 그것에 대해 다시 생각하게 해주세요. –

답변

1

Hibernate 3.5에는 컬럼 읽기와 쓰기 중에 데이터베이스 기능을 적용 할 수있는 새로운 기능이있다. 자세한 내용은 설명서의 Column Read and Write Expressions 섹션을 참조하십시오. 귀하의 경우에는 트리거가 귀하를 대신하여 암호화를 처리하므로 읽기 표현식을 적용하지만 쓰기 표현식은 적용하지 않습니다.

최대 절전 모드 특수 효과를 사용하고있는 것처럼 보입니다.이 기능은 아직 사용할 수 없습니다. XML 기반 매핑을 사용해야합니다. 다음은 독자와 작가의 표현 모두와 어떻게 생겼는지에 대한 예입니다. (둘 다 선택 사항입니다.)

<property name="creditCardNum"> 
     <column name="credit_card_num" not-null="true" 
      write="encrypt(?)" 
      read="decrypt(credit_card_num)"/> 
    </property>