如何使用 eclipselink jpa 验证模型

How to validate model with eclipselink jpa

我有一个模型,我需要用 eclipselink jpa 验证模型 如果为空,我添加注释 @NotEmpty 验证名称,但是当我 save/persist 模型时,验证不起作用

  @Entity
    public class Role {

        @Id
        private String id;
        @NotEmpty
        private String name;

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

    }

我的 jpa 配置 xml 像这样

<?xml version="1.0" encoding="UTF-8"?>

<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
   http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

    <persistence-unit name="Eclipselink_JPA" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>app.test.Model.Role</class>

        <properties>

            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/test"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.password" value=""/>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>


        </properties>
    </persistence-unit>
</persistence>

JPA API(EclipseLink 实现)与 Bean Validation API 无关。 要使用 Bean Validation API,您需要 Bean Validation API jar (javax.validation),以及 API (Apache BVAL, Hibernate Validator, 等) 在你的 CLASSPATH 中。 JPA 提供的唯一功能是根据 this link 自动启用验证,但默认设置是 "auto",因此实际上不需要