猿问

EclipseLink:如何在没有 JEE/CDI 的情况下启用 Bean 验证?

我们有一个测试扩展,它为我们的测试创建一个 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();


我们注意到,在 pre-persist 或 pre-update 时没有触发 BeanValidator,尽管我们的其他验证器触发得很好。这是有道理的,在 JEE 容器中,Bean Validation 库是由容器本身提供的。


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


临摹微笑
浏览 114回答 1
1回答

长风秋雁

这就像将它添加到我们的 pom 中一样简单:&nbsp; &nbsp; <dependency>&nbsp; &nbsp; &nbsp; &nbsp; <groupId>org.apache.bval</groupId>&nbsp; &nbsp; &nbsp; &nbsp; <artifactId>bval-jsr</artifactId>&nbsp; &nbsp; &nbsp; &nbsp; <version>1.1.2</version>&nbsp; &nbsp; &nbsp; &nbsp; <scope>test</scope>&nbsp; &nbsp; </dependency>
随时随地看视频慕课网APP

相关分类

Java
我要回答