相关疑难解决方法(0)

在spring数据jpa存储库方法查询上附加自定义条件

精简版

我正在寻找一种方法来使存储库类的所有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)

spring hibernate jpa spring-aop spring-data-jpa

3
推荐指数
1
解决办法
5282
查看次数

标签 统计

hibernate ×1

jpa ×1

spring ×1

spring-aop ×1

spring-data-jpa ×1