微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

spring-data-jpa-datatables:忽略 Hibernate @Where 注释

如何解决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 举报,一经查实,本站将立刻删除。