从JPA hibernate 4-2-*升级到4-3-5异常
当我升级到时,我有一个与hibernate 4.2*一起工作的应用程序 hibernate 4.3.5在执行以下JPA查询时出现以下异常:从JPA hibernate 4-2-*升级到4-3-5异常,hibernate,jpa,Hibernate,Jpa,当我升级到时,我有一个与hibernate 4.2*一起工作的应用程序 hibernate 4.3.5在执行以下JPA查询时出现以下异常: SELECT A FROM MAIL_INTERNAL_COPY A WHERE mail.id = 172 数据库中的记录。 例外情况: javax.ejb.EJBException:javax.persistence.EntityNotFoundException: 找不到id为172的com.wish.diwan.model.client.mail
SELECT A FROM MAIL_INTERNAL_COPY A WHERE mail.id = 172
数据库中的记录。
例外情况:
javax.ejb.EJBException:javax.persistence.EntityNotFoundException:
找不到id为172的com.wish.diwan.model.client.mail.entity.MailBean
我的实体:
@Entity(name="MAIL_INTERNAL_COPY")
@Table(name="MAIL_INTERNAL_COPY")
public class MailInternalCopyBean
.
@ManyToOne(fetch=FetchType.EAGER )
@JoinColumn(name="MAIL_ID",referencedColumnName="ID",nullable=false)
private MailBean mail;
它在hibernate 4.2上运行。*要让它在4.3.5上运行,我必须进行更改
fetch=FetchType.eagent to fetch=FetchType.Lazy,但如果我不想将其更改为Lazy,该怎么办
这是一个bug还是其他什么,请给出建议?
问候
Wish79尝试将其更改为隐式联接:
SELECT A
FROM MAIL_INTERNAL_COPY A
JOIN A.mail m
WHERE m.id = 172
还要确保没有MailBean设置为null的MailInternalCopyBean DB条目(因为您将此关联标记为null=false) 我找到了解决方案,当我将hibernate从4.3.5升级到4.3.7时,问题就消失了。 谢谢大家
Wish79谢谢你的回答,我用同样的问题尝试了它,如果我将@ManyToOne(fetch=FetchType.EAGER)更改为@ManyToOne(fetch=FetchType.Lazy),它正在工作,为什么它在hibernate 4.2上工作而在4.3上不工作,我应该将所有的fetch类型更改为Lazy还是hibernate 4.3.5有什么问题