精简版
我正在寻找一种方法来使存储库类的所有findBy方法附加特定条件
完整版本
我们假设我有一个产品实体和客户实体.它们都扩展了OwnerAwareEntity,并且它们继承了ownerRef字段,该字段标识了实体的所有者(它可以是商家或合作伙伴).我希望在运行时修改Product和Customer的findBy方法,以便附加ownerRef的附加条件.可以从用户会话中识别ownerRef值.
例
提供公共ownerRef字段的父实体类
public class OwnerAwareEntity implements Serializable {
private String ownerRef;
}
Run Code Online (Sandbox Code Playgroud)
客户实体扩展了OwnerAwareEntity
public class Customer extends OwnerAwareEntity {
private String firstname;
private String mobile ;
}
Run Code Online (Sandbox Code Playgroud)
产品实体扩展了OwnerAwareEntity
public class Product extends OwnerAwareEntity {
private String code;
private String name;
}
Run Code Online (Sandbox Code Playgroud)
产品和客户的存储库类扩展了OwnerAwareRepository
public interface OwnerAwareRepository extends JpaRepository {
}
public interface ProductRepository extends OwnerAwareRepository {
Product findByCode(String code );
}
public interface CustomerRepository extends OwnerAwareRepository {
Customer findByFirstname(String firstname );
}
Run Code Online (Sandbox Code Playgroud)
这在执行时应该产生如下的查询
select P from Product …Run Code Online (Sandbox Code Playgroud)