2015-09-22 143 views
2

在一个应用程序中,有几个实体类,为此数据库的更新语句将被禁止。我想插入和读取数据库,但不会对现有记录进行任何更新。将完整实体标记为“updatable = false”

有没有一种方法,以纪念整个@Entity类为updatable=false

  • 人们可以诠释的每一个领域与@Column(updatable=false)或类似的注释,但出于显而易见的原因,我想避免这种情况。

  • 摆脱setter方法也不是一种选择,因为实体类也用作DTO,而应用程序的其他部分需要这些setter。所以这会导致现有代码的重构。

有另一种简单干净的方式来实现想要什么,我有使用JPA 2.1/EclipseLink的(+扩展)

回答

4

你可以使用​​为:

@Entity 
public class ReadOnlyEntity { 
    @PreUpdate 
    private void preUpdate() { 
    throw new UnsupportedOperationException(); 
    } 
} 

这样你永远不会更新(写)该实体。

+0

好而有效的想法,tyvm! :) – stg

相关问题