Java Hibernate在向@OneToMany集合添加项时更新实体的@Version属性-这正常吗?

Java Hibernate在向@OneToMany集合添加项时更新实体的@Version属性-这正常吗?,java,hibernate,jpa,Java,Hibernate,Jpa,我有两个Foo和Bar实体,它们具有1:n关系: @Entity public class Foo { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "foo_id") Integer id; @OneToMany(fetch = FetchType.LAZY) @JoinColumn(name = "foo_id") private Set

我有两个Foo和Bar实体,它们具有1:n关系:

@Entity
public class Foo {
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "foo_id")
    Integer id;

    @OneToMany(fetch = FetchType.LAZY)
    @JoinColumn(name = "foo_id")
    private Set<Bar> bars;

    @NotNull
    @Version
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name="update_date", nullable=false)
    private Date updateDate;

    // getters and setters ...
}

@Entity
public class Bar{
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "bar_id")
    Integer id;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "foo_id")
    private Foo foo;


    // getters and setters ...
}
奇怪的是,当我调用entityManager.flush()时,foo.updateDate会被更新,即使数据库中唯一应该发生的事情是向Bar插入新行,也就是说,不应该修改现有的foo行。
Hibernate EntityManager的这种行为是正常的/故意的吗?

请参见“谢谢”-我确实尝试过搜索,我发誓!-)看,谢谢-我确实尝试过搜索,我发誓!-)
Foo foo = entityManager.find(Foo.class, 1);
Bar bar = new Bar();
entityManager.persist(bar);
foo.getBars().add(bar);
entityManager.flush();