Hibernate 实体有一个通用基类吗?

2024-01-09

Hibernate 实体是否有一个通用基类,即具有 id、版本和其他通用属性的 MappedSuperclass?有什么缺点吗?

Example:

@MappedSuperclass()
public class BaseEntity {

    private Long id;
    private Long version;
    ...

    @Id @GeneratedValue(strategy = GenerationType.AUTO)
    public Long getId() {return id;}

    public void setId(Long id) {this.id = id;}

    @Version
    public Long getVersion() {return version;}
    ...

    // Common properties
    @Temporal(TemporalType.TIMESTAMP)
    public Date creationDate() {return creationDate;}
    ...
}

@Entity
public class Customer extends BaseEntity {
    private String customerName;
    ...
}

这对我们来说效果很好。除了 ID 和创建日期之外,我们还有修改日期。我们还有一个中间层标记基础实体实现了一个Taggable界面,因为我们的一些 Web 应用程序的实体具有标签,例如 Stack Overflow 上的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hibernate 实体有一个通用基类吗? 的相关文章

随机推荐