Java 休眠大对象类型不匹配

Java 休眠大对象类型不匹配,java,spring,hibernate,postgresql,Java,Spring,Hibernate,Postgresql,当我尝试在我的DAOimpl类中使用此方法更新hibernate中的条目时: 我收到以下错误: 错误:错误:列记录的类型为lo,但表达式的类型为bigint 提示:您需要重写或强制转换表达式。 职位:201 在我的实体类中,实例变量记录的类型为Blob: @Entity @Table(name = "VOICEMESSAGES") public class VoiceMail implements Serializable { private int uniqueId; pr

当我尝试在我的DAOimpl类中使用此方法更新hibernate中的条目时:

我收到以下错误:

错误:错误:列记录的类型为lo,但表达式的类型为bigint 提示:您需要重写或强制转换表达式。 职位:201

在我的实体类中,实例变量记录的类型为Blob:

@Entity
@Table(name = "VOICEMESSAGES")
public class VoiceMail implements Serializable {
     private int uniqueId;
     private int messageNumber;
     private String directory;
     private String context;
     private String macroContext;
     private String callerId;
     private String origTime;
     private String duration;
     private String flag;
     private String mailboxUser;
     private String mailboxContext;
     private Blob recording;
     private String label;
     private Boolean read;
     private String messageId;

也许我遗漏了一些与大型对象的命名相关的内容,因为db中的记录列是lo类型。
谢谢你的回答

我认为您需要在索引列uniqueid中添加一个@id。看起来它正在考虑将记录作为索引列,并尝试将传递的id与之匹配。VoiceMail vm=VoiceMailsession.loadVoiceMail.class,id;我有我的唯一id的@id地址,但我没有把它放在代码段中,因为我的类太大了。谢谢您可以将@lob放在“录制”变量声明之前吗?或者干脆把它去掉。看看这个问题。一定要核对所有答案。
@Entity
@Table(name = "VOICEMESSAGES")
public class VoiceMail implements Serializable {
     private int uniqueId;
     private int messageNumber;
     private String directory;
     private String context;
     private String macroContext;
     private String callerId;
     private String origTime;
     private String duration;
     private String flag;
     private String mailboxUser;
     private String mailboxContext;
     private Blob recording;
     private String label;
     private Boolean read;
     private String messageId;
@Column(name = "RECORDING", unique = true, nullable = false)
@Lob
@JsonIgnore
public Blob getRecording() {
    return recording;
}

public void setRecording(Blob recording) {
    this.recording = recording;
}