Hibernate 多对一映射中的 EntityNotFoundException 但是数据存在

新手上路,请多包涵

当我尝试通过 Invoice 对象获取用户时出现 javax.persistence.EntityNotFoundException 错误

invoice.getUser().getId()

错误如下

javax.persistence.EntityNotFoundException: Unable to find com.indianretailshop.domain.User with id 5
    at org.hibernate.ejb.Ejb3Configuration$Ejb3EntityNotFoundDelegate.handleEntityNotFound(Ejb3Configuration.java:137)
    at org.hibernate.proxy.AbstractLazyInitializer.checkTargetState(AbstractLazyInitializer.java:189)
    at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:178)
    at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:215)

实体类如下(不包括getters和setters)

 @Entity
@Table(name="users")
public class User implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(unique=true, nullable=false)
    private int id;

    .
        .
        .

    //bi-directional many-to-one association to Invoice
    @OneToMany(mappedBy="user")
    private List<Invoice> invoices;
}

@Entity
@Table(name="invoice")
public class Invoice implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(unique=true, nullable=false)
    private int id;
        .
        .
        .

    //bi-directional many-to-one association to User
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="Users_id")
    private User user;
}

原文由 Badal Singh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

问题可能是直接实体不存在,但也可能是来自该实体的引用实体,通常用于 EAGER 获取类型,或者 optional=false。

尝试这个:

      //bi-directional many-to-one association to User
     @ManyToOne(fetch=FetchType.LAZY)
     @JoinColumn(name="Users_id")
     private User user = new User();

原文由 rajesh kakawat 发布,翻译遵循 CC BY-SA 3.0 许可协议

我有同样的问题,并且

@NotFound(action = NotFoundAction.IGNORE)

解决了我的问题。

原文由 ozeray 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题