我在我的应用程序中使用spring boot和spring repository接口(带有抽象方法和查询注释)来检索数据。出于应用程序的目的,我们在一个db中为多个租户使用相同的模式。当从数据库中检索数据时,我需要在criteria中追加租户id。我不能在所有查询中手动这样做,因为从长远来看这是一种痛苦。
示例存储库:
public interface MyRepository extends JpaRepository<User, Long>{
// Methods come here
}
我还需要过滤默认findOne、findAll等方法返回的数据。
PS:我开始了解Hibernate过滤器,但不确定如何在Spring将Hibernate过滤器配置为Spring完全抽象的Hibernate会话。
只需将要查找的属性放在findBy之后,例如:
@Repository
public interface MyRepository extends JpaRepository<User, Long>{
List<Object> findById(String id);
}
然后只需从您的服务或控制器调用它并传递ID;
final MyRepository myRepository;
myRepository.findById('1556');
根据您的身份证件类型,进行正确的转换