gpt4 book ai didi

hibernate - 为 bean 配置 Hibernate 验证

转载 作者:行者123 更新时间:2023-12-02 08:58:50 26 4
gpt4 key购买 nike

我需要根据SQL查询结果执行验证。

查询被定义为注释 - 就像我的实体 bean 中的@NamedQuery

根据 Hibernate 文档( doc ),可以在以下操作中验证 bean:
更新前
预插入
预删除

看起来像:

<hibernate-configuration>
<session-factory>
...
<event type="pre-update">
<listener class="org.hibernate.cfg.beanvalidation.BeanValidationEventListener"/>
</event>
<event type="pre-insert">
<listener class="org.hibernate.cfg.beanvalidation.BeanValidationEventListener"/>
</event>
<event type="pre-delete">
<listener class="org.hibernate.cfg.beanvalidation.BeanValidationEventListener"/>
</event>
</hibernate-configuration>

问题是如何将我的 bean 连接到验证配置,如上所述。

更新:

实体类

...
@Entity
@NamedQuery(name = "isValutaKursExists", query = "SELECT id FROM CurrencyRate WHERE bankId = :bankNum")
@Table(name = "Currency")
public class Currency {
...

最佳答案

The question is how to connect my bean with the validation configuration, described above.

您需要使用 Bean Validation API 中的注释来注释您的 Bean,以添加 constraints例如 @NotNull@Size ( built-in ) 或定义您自己的。但 Bean Validation 的真正意义并不是根据 SQL 查询结果执行验证

顺便说一句,您提到了@NamedQuery,所以我猜您正在使用 Hibernate EntityManager。在这种情况下,我建议将 Bean Validation 与 JPA(而不是 Hibernate)集成。如果您使用 JPA 2.0,只需将 Bean Validation 实现放在类路径上即可。如果您使用的是 JPA 1.0,请参阅 this previous answer .

关于hibernate - 为 bean 配置 Hibernate 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2835177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com