EclipseLink:如何在不使用JEE / CDI的情况下启用Bean验证? (即在SE中启用)

时间:2018-11-13 21:31:06

标签: java jpa java-ee eclipselink openwebbeans

我们有一个测试扩展,可以为我们的测试创建一个EntityManager:

Map<String, String> properties = new HashMap<String, String>(); properties.put(PersistenceUnitProperties.JDBC_DRIVER, DRIVER_NAME); properties.put(PersistenceUnitProperties.JDBC_URL, createUrl(testInstance)); properties.put(PersistenceUnitProperties.JDBC_USER, DB_USER); properties.put(PersistenceUnitProperties.COORDINATION_PROTOCOL, null); emf = Persistence.createEntityManagerFactory(PU_NAME, properties); ... EntityManager em = emf.createEntityManager();

我们注意到尽管没有使用BeanValidator在持久化或更新前触发,即使我们的其他验证器也可以触发。在JEE容器中,这是有道理的,Bean验证库由容器本身提供。

如果我们将其包含在测试类路径中,是否有可能使EclipseLink调用类似OpenWebBeans的东西?

1 个答案:

答案 0 :(得分:0)

这就像将其添加到我们的pom中一样简单:

    <dependency>
        <groupId>org.apache.bval</groupId>
        <artifactId>bval-jsr</artifactId>
        <version>1.1.2</version>
        <scope>test</scope>
    </dependency>