Java 使用@LOB和jasypt@Type注释时,Hibernate出现生成的架构问题
我正在与以下人员合作Java 使用@LOB和jasypt@Type注释时,Hibernate出现生成的架构问题,java,hibernate,jpa,encryption,jasypt,Java,Hibernate,Jpa,Encryption,Jasypt,我正在与以下人员合作 package org.temp import org.hibernate.annotations.Parameter; import org.hibernate.annotations.Type; import org.hibernate.annotations.TypeDef; import org.jasypt.hibernate4.type.EncryptedStringType; import javax.persistence.CascadeType; i
package org.temp
import org.hibernate.annotations.Parameter;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.jasypt.hibernate4.type.EncryptedStringType;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;
@TypeDef(
name="encryptedString",
typeClass=EncryptedStringType.class,
parameters= {
@Parameter(name="encryptorRegisteredName", value="defaultStringEncryptor")
}
)
@Entity
@Table(name = "MESSAGE")
public class MessageEntity {
@Id
@Column(name = "MESSAGE_ID", nullable = false)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MESSAGE_ID_SEQ")
@SequenceGenerator(name = "MESSAGE_ID_SEQ", sequenceName = "MESSAGE_ID_SEQ", allocationSize = 1,
initialValue = 1)
private BigInteger messageId;
@Column(name = "SUBJECT")
private String subject;
@Type(type="encryptedString")
@Lob
@Column(name = "CONTENT")
private String content;
...
}
其目的是对内容进行加密,以便任何人在查询数据库时都不会看到内容列中存储的数据。这一切都很好,但是
在添加@Type(Type=“encryptedString”)之前
在生成的模式中,我得到了这个
create table MESSAGE (
MESSAGE_ID number(19,2) not null,
CONTENT clob,
SUBJECT varchar2(255),
primary key (MESSAGE_ID)
);
但是当我添加@Type(Type=“encryptedString”)时
使用hibernate 4.1.3.Final和jasypt 1.9.2
我一直在挖掘和研究如何正确注释,但没有任何运气好的,我找到了解决这个问题的方法。我对休眠有点陌生,所以错过了这个选项 基本上放弃了
@lob
并更新了以下内容:
@Column(name = "CONTENT", columnDefinition = "CLOB")
他打算使用“文本”来提高效率,但该项目的要求表明,该字段应该能够保存大量数据
@Column(name = "CONTENT", columnDefinition = "CLOB")