验证不适用于EntityManager.merge()

amo*_*fis 3 java validation jpa java-ee bean-validation

我对我的实体有很少的验证,比如@NotNull和某些一代,比如

@Id
@GeneratedValue(strategy = AUTO)
@Column(name = "ID")
private Long id;

@Column
@GeneratedValue(strategy = GenerationType.AUTO)
private Long referenceNumber;
Run Code Online (Sandbox Code Playgroud)

但是,在调用EntityManager.merge()此值时不会生成.带@NotNull注释的空字段无需任何抱怨即可传递.甚至id没有生成.

我应该以某种方式切换这一代吗?怎么样,在哪里?

kra*_*tan 6

Merge()默认情况下不调用pre-insert/pre-update事件侦听器.flush()以后merge()应该这样做.