如何解决spring-data-jpa-datatables:忽略 Hibernate @Where 注释
对于spring-data-jpa-datatables:4.3
,如何让DataTablesRepository
返回所有实体,忽略Hibernate的@Where
注解?
这是一个带有 Hibernate 的 @Where
注释的实体:
@Entity
@sqlDelete(sql = "UPDATE vehicle SET deleted_at = Now() WHERE id = ?")
@Where(clause = "deleted_at IS NULL")
public class Vehicle extends AbstractEntity implements Serializable {...}
这是一个扩展spring-data-jpa-datatables的DataTablesRepository
的相应存储库:
@Repository
public interface VehicleDataTableRepository extends DataTablesRepository<Vehicle,Long> {
}
解决方法
这不可能。 @Where
谓词始终适用。您可以再次将同一个表映射到不同的实体类而不使用 @Where
并查询,如果您愿意,或者您创建过滤器 (@Filter
) 而不是使用 @Where
并确保过滤器始终处于活动状态,除非您明确不希望应用过滤器谓词。另见:https://docs.jboss.org/hibernate/orm/5.5/userguide/html_single/Hibernate_User_Guide.html#pc-filter
您可以编写如下所示的本机查询。
@Query(value="SELECT * FROM table Name",nativeQuery=true)
public ignoreWhereClauseQuery(){}
@Query 注解中的 SQL 必须指向表名和字段名(不是实体名)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。