我有一个定义为 Stuff
的表格...
id, <fields>..., active
Active是软删除标记,始终为1
或0
。长期来看,这可能会被历史表取代。
public interface StuffRepository extends JpaRepository<StuffEntity, Long> {}
在代码中,我们始终使用活动记录。有没有办法让Spring始终将active=1
条件附加到为此存储库生成的查询中?或者更理想的是,允许我扩展用于生成查询的语法?我知道我可以在任何地方创建命名的
@queues
,但那样我就失去了生成查询的便利性。我还想避免在接口中添加“active”方法。如果有影响的话,我正在使用Hibernate 4.2作为我的JPA实现。
@Query
注解编写jpql
,该怎么办? - Muhammad HewedyfindByLastName(String lastName)
或findByStatus(boolean status)
或findByAge(int age)
,会发生什么? 创建自定义的BaseJpaRepository
(我已经扩展了JpaRepository
)之后(我使用下面提到的示例),我可以删除实体,这意味着在findAll()
或findById(int id)
中只能找到delete
标志为 false 的实体。但是对于其他自定义的findByOtherProeprty()
方法,则不起作用,它们也会返回delete
标志为 true 的所有其他实体。我是否遗漏了某些东西,以使它们正常工作? - Mamun