使用jasypt加密@Lob byte []列类型

时间:2013-07-31 10:12:30

标签: java encryption orm jasypt lob

我正在尝试使用jasypt加密byte []字段。

加密前的代码

@Entity
public class ContentFile {
...
@Column(name = "fileContent")
@Lob
private byte[] fileContent;
...
}

通常这会在db中映射到oracle和我使用的h2中的BLOB。 现在添加加密后我有类似的东西

@TypeDef(name = TypeDefName.ENCRYPTED_BYTE_ARRAY, typeClass = EncryptedBinaryType.class, parameters = { @Parameter(name = TypeDefParamName.ENCRYPTOR_REGISTERED_NAME, value = EncryptorRegisteredName.HIBERNATE_BINARY_ENCRYPTOR) })
@Entity
public class ContentFile {
...
@Type(type = TypeDefName.ENCRYPTED_BYTE_ARRAY)
@Column(name = "fileContent")
@Lob
private byte[] fileContent;
...
}

但是生成的模式现在不同了 - 我在Oracle中获得RAW(255),在H2中获得二进制(255),当然这会产生错误,因为字节数组要大得多。 看起来@Lob在放置@Type时会被忽略,那么有没有办法告诉jasypt / hibernate这个byte []实际上应该是BLOB?

0 个答案:

没有答案