Java 休眠大对象类型不匹配
当我尝试在我的DAOimpl类中使用此方法更新hibernate中的条目时: 我收到以下错误: 错误:错误:列记录的类型为lo,但表达式的类型为bigint 提示:您需要重写或强制转换表达式。 职位:201 在我的实体类中,实例变量记录的类型为Blob: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
@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;
}