0

Hibernate は、save() メソッドを介してデータベースにレコードを挿入する方法を提供しました。例: User() user = new User(int id, String name); userDAO.save(ユーザー);

これは素晴らしいことです。しかし、私はこれで立ち往生しています:テーブルユーザーSQLクエリにレコードを挿入するには、このクエリを実行する必要があります: "insert into user values("My name", AES_ENCRYPT("clear_txt", "key")); 例として: My table user has two fields: 'name', and 'password'. The password needed to encrypt with some key. AES_ENCRYPT は MySQL の関数です。

これをHibernateの方法で行うにはどうすればよいですか? 提供されたキーを使用してデータベース内のフィールドを暗号化するという要件にどのように対処しますか?

4

2 に答える 2

0

データベースに永続化する前にJavaで暗号化するか、 ColumnTransformerを使用できます

列から値を読み取り、列に値を書き込むために使用されるカスタム SQL 式。オブジェクトの直接読み込み/保存、およびクエリに使用します。書き込み式には、'?' が 1 つだけ含まれている必要があります。値のプレースホルダー。例: read="decrypt(credit_card_num)" write="encrypt(?)"

于 2013-10-22T11:58:31.007 に答える