java - 检查EntityManagerFactory

标签 java jpa eclipselink

我使用 eclipselink 作为 JPA 的实现,我想知道是否可以检查我的 EntityManagerFactory 是否“Activity ”

例如,如果连接参数无效,当我创建 EMF 时,在开始事务之前不会出现任何异常

谢谢

最佳答案

使用entityManagerFactory,您只能获取EntityManager并向数据库发送检查查询,但在这种情况下,我认为最好的解决方案是使用 validator 配置连接池。

通过这种方式,从池中创建或检索的每个连接都可以通过 JDBC API 或使用简单的查询进行验证。 例如,在 JBoss 中的数据源配置中,您可以添加以下行:

<!-- sql to call when connection is created    -->
<new-connection-sql>some arbitrary sql</new-connection-sql>

<!-- sql to call on an existing pooled connection when it is obtained from pool     -->
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>

或(对于 Postgres,但每个 DBMS 都有示例)

<validation>
  <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"></valid-connection-checker>
  <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"></exception-sorter>
</validation>

关于java - 检查EntityManagerFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10101890/

相关文章:

java - 复合 ID JPA2 和 Spring Data 不起作用

java - 结果未显示在 ListView Android 中

java - 如果条件是具有不同参数的方法,如何替换多个 if/else 语句

java - Java 中的 GAE 数据存储 + JPA + Odata

java - 自定义 JPA 实现//现有的无 SQL JPA 实现

java - 在JPA中插入1对n关系的 "other side"中的值(使用EclipseLink)

java - 在某种情况下避免 Java 类之间依赖关系的最佳实践?

java - 为什么 System.out.print(三元运算符) 在输出中打印 float ?

performance - 为什么 JPA/Eclipselink 即使使用 BatchFetchType.IN 提示也会触发冗余数据库查询?

java - 使用 EntityManager JPA EclipseLink 更新实体