hibernate 是否有替代6.3中已弃用的@Where和@Loader的

7gcisfzg  于 2023-10-23  发布在  其他
关注(0)|答案(1)|浏览(235)

自hibernate6.3起,org.hibernate.annotations.Where和Loader已弃用。
我们将这些注解与@NamedQuery和@SQLDelete一起使用来实现软删除。
实现这一点的非推荐方式是什么?

ui7jx7zq

ui7jx7zq1#

根据documentation,您可以将@Where注解替换为@SQLRestriction
发件人:

@Entity
 @Where(clause = "status <> 'DELETED'")
 class Document {
     ...
     @Enumerated(STRING)
     Status status;
     ...
 }

收件人:

@Entity
 @SQLRestriction("status <> 'DELETED'")
 class Document {
     ...
     @Enumerated(STRING)
     Status status;
     ...
 }

根据documentation,您还可以将@Loader替换为@SQLSelect@HQLSelect
关于@HQLSelect@SQLSelect
这些注解只是Loader和NamedQuery的缩写。
关于如何做的更多信息我认为你应该检查有关它的文档的附加参考。

相关问题