Hibernate查询不返回来自同一事务的新添加的记录

时间:2013-11-20 06:32:22

标签: java mysql hibernate jpa

我的实体就像

@Entity
@Table(name = "Item")
public class Item implements Serializable {

    @Id
    @GeneratedValue
    @Column(name = "ID")
    private long id;

    @JoinColumn(name = "PARENT_ID")
    @JsonIgnore
    private Item parent;
}

我在一次交易中做了3件事

  1. 使用EntityManager
  2. 保留一些项目
  3. hibernate query“from item in new in newList”
  4. hibernate query“from parent where parent = parentid”
  5. 在持久化新项目之后的第一步中我执行entityManager.flush();并且刷新模式是提交。 在第二步中,我给出了hibernate查询。在这里,我得到了正确的结果,但在第三步,当我进行休眠查询时,它返回结果。但是这个结果不包含新持久化的查询。

    我认为问题是由于parentId条件造成的。根据要求,我不能改变条件。我们有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

@JoinColumn没有与Item>建立关系家长。

您需要使用相关的关联映射,@ OneToOne,@ ManyToMany,@ OneToMany,@ ManyToOne等来注释此关系。

答案 1 :(得分:0)

提交后尝试第3步......这不是您问题的直接解决方案,只是试一试..