MappedSuperclass
基本使用
org.babyfish.jimmer.sql.MappedSuperclass用于提供可供实体继承的抽象超类型。
该超类型并不是实体,但可以被多个实体类型继承,从而避免多个实体重复声明相同的属性。
让我们来看一个例子,先定义超类型
- Java
- Kotlin
BaseEntity.java
@MappedSuperclass
public interface BaseEntity {
LocalDateTime createdTime();
@ManyToOne
User createdBy();
LocalDateTime modifiedTime();
@ManyToOne
User modifiedBy();
}
BaseEntity.kt
@MappedSuperclass
interface BaseEntity {
val createdTime: LocalDateTime
@ManyToOne
val createdBy: User
val modifiedTime: LocalDateTime
@ManyToOne
val modifiedBy: User
}
其他实体就可以继承它
-
BookStore- Java
- Kotlin
BookStore.java@Entity
public interface BookStore extends BaseEntity {
...省略其他代码...
}