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")