我有一个JPA @MappedSuperClass并@Entity扩展它:
@MappedSuperclass
public class BaseClass {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column
private Boolean active;
//getters & setters
}
@Entity
public class Worker extends BaseClass{
@Column
private String name;
//getters & setters
}
Run Code Online (Sandbox Code Playgroud)
active基类的字段是子实体的标志.应该只在应用程序中加载活动的.然后我写了一个通用的Spring Data Proxy接口:
public interface Dao<T extends BaseClass, E extends Serializable> extends
CrudRepository<T, E> {
Iterable<T> findByActive(Boolean active);
}
Run Code Online (Sandbox Code Playgroud)
这个是应该用于Worker数据访问的接口,正确扩展前一个:
@Transactional
public interface WorkerDao extends Dao<Worker, Long>{}
Run Code Online (Sandbox Code Playgroud)
好吧,现在在我的逻辑层中,我实现了一个抽象类,它将为我的实体包装CRUD操作的公共代码.我将为每个人提供服务,但我只想继承这个服务abstract.我想为每个服务连接特定的存储库,并使用abstract方法将其提供给超类.这就是我的超类的实现方式:
public abstract …Run Code Online (Sandbox Code Playgroud)