当我升级到hibernate 4.3.5时,当我执行以下查询时,我有以下异常:
SELECT A FROM MAIL_INTERNAL_COPY A WHERE mail.id = 172数据库中的记录172 .
例外情况:
com.wish.diwan.model.client.mail.entity.MailBean:javax.ejb.EJBException: javax.persistence.EntityNotFoundException:无法找到id 172的javax.ejb.EJBException
我的实体:
@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;为了让它在4.3.5上工作,我必须将更改为fetch=FetchType.Lazy,但是如果我不想将它更改为Lazy,,该怎么办?
是个bug还是别的什么,请告诉我?
看待Wish79
发布于 2014-11-17 21:57:06
尝试将其改为隐式联接:
SELECT A
FROM MAIL_INTERNAL_COPY A
JOIN A.mail m
WHERE m.id = 172还要确保没有MailInternalCopyBean DB条目将MailBean设置为null (因为您将此关联标记为nullable=false)。
发布于 2014-11-18 14:27:17
我找到了解决方案,当我将hibernate从4.3.5升级到4.3.7时,问题消失了。
谢谢所有的Wish79
https://stackoverflow.com/questions/26978718
复制相似问题