在一个应用程序中,有多个实体类,对于这些实体类,应禁止对数据库的更新语句。我想插入数据库并从中读取数据,但是从不对现有记录进行任何更新。
有没有办法将整个
@Entity班级标记为updatable=false?
可以使用@Column(updatable=false)或类似的注释来注释每个字段,但是出于明显的原因,我想避免这种情况。
摆脱setter方法也不是一种选择,因为实体类也用作DTO,而应用程序的其他部分则需要这些setter。因此,这将导致大量重构现有代码。
是否有另一种简单明了的方法来实现我想要的JPA 2.1 / EclipseLink(+ Extensions)
您可以使用@PreUpdate:
@Entity
public class ReadOnlyEntity {
@PreUpdate
private void preUpdate() {
throw new UnsupportedOperationException();
}
}
Run Code Online (Sandbox Code Playgroud)
这样,您将永远无法更新(写入)该实体。
| 归档时间: |
|
| 查看次数: |
607 次 |
| 最近记录: |