当前位置: 首页 > 知识库问答 >
问题:

如何用JPA解决javax.persistence.EntityNotFoundException(不是通过使用@NotFound)

羊新翰
2023-03-14

我们正在使用JPA从数据库加载一些内容。一些实体之间可能具有可选的关系,例如。

@Entity
public class First {
    ....
    @OneToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH, CascadeType.DETACH})
    @JoinColumns(value = {
        JoinColumn(name = "A_ID", referencedColumnName = "A_ID", insertable = false, updatable = false), 
        JoinColumn(name = "B_ID", referencedColumnName = "B_ID", insertable = false, updatable = false)})
    private Second second;

当数据库中存在此关联时,一切工作正常。如果不是,我将得到javax.persistence.EntityNotFoundException
我想要的是,如果关联不存在,则该字段为空,而不是例外。

非常感谢您的帮助!

共有1个答案

陈法
2023-03-14

下面是这个问题的替代解决方案。我不得不建立在一个旧的数据库之上,那里的关系有时是腐败的。这就是我仅使用JPA解决的方法。

@PostLoad
public void postLoad(){
    try {
        if(getObject() != null && getObject().getId() == 0){
            setObject(null);
        }
    }
    catch (EntityNotFoundException e){
        setObject(null);
    }
} 
 类似资料:
  • 我有一个问题,通过使用Gradle的artifactory解决依赖关系。但是我可以使用maven解决这种依赖关系,所以我不确定我做错了什么。 maven构建文件是: 我可以确认maven将解决依赖关系: 我的gradle构建脚本是: 编辑#2我在使用maven构建时看到以下警告: 查看GeoServer2.5.1源代码: (WAR)具有父级(POM) (POM)具有父(WAR) 也许gradle在

  • 问题内容: 我想使用JPA Criteria从数据库中获取第一行。我使用JPA,Hibernate 4.2.7。在SQL中,语句如下所示: 我要实现的Java代码如下所示: 但是’rownum’伪列无法解析,我得到了例外: 是可能的,如果可以,如何使用Criteria API获取“ rownum”伪列?感谢您的任何建议。 问题答案: 您可以使用setFirstResult和setMaxResult

  • 问题内容: 我想使用JPA Criteria从数据库中获取第一行。我使用JPA,Hibernate 4.2.7。在SQL中,语句如下所示: 我要实现的Java代码如下所示: 但是’rownum’伪列无法解析,我得到了例外: 有可能,如果可以,如何使用Criteria API获取“ rownum”伪列?感谢您的任何建议。 问题答案: 您可以使用setFirstResult和setMaxResults

  • 我正在为一个控制器方法编写一个单元测试,该方法接受一个和一个自定义对象。到目前为止,我可以看到MultipartFile是请求的正确格式,但MessageAttachment不是。 通过解析,会抛出服务器端500错误,其中包含。 这似乎是一个问题,在测试中转换到MockMultipartFile消息附件。这类似于这里显示的示例-https://stackoverflow.com/a/2180518

  • 我有一个通用实体,我想使用JPA持久化,以便它的通用值存储在单个列中。简化的实体类如下所示: 类型唯一标识泛型值的类,并且允许具有相同类的多个类型: 我没有找到如何使用Hibernate保持这种泛型类的方法。我找到了替代方法和变通方法,但它们在我看来并不理想。我考虑了以下选项: > 将值的类型设置为JsonNode,并将其类型类标记为com。弗拉德米尔恰。冬眠类型json。JsonBinaryTy

  • 本文向大家介绍使用canvas时你有遇到过哪些坑?是如何解决的?相关面试题,主要包含被问及使用canvas时你有遇到过哪些坑?是如何解决的?时的应答技巧和注意事项,需要的朋友参考一下 [参考坑](https://www.cnblogs.com/superil/p/8462042.html)