对于WebLogic 12.2.1.3,Hibernate 5.3,Sprnig Data JPA和Java EE,我有一个奇怪的例外。
我在weblogic中有一个数据库和一个通用JDBC数据源,其JNDI名称为jdbc/UsersDS.
当我尝试列出其中的条目时,我遇到了一个很长的例外,我不想在这里粘贴,所以我使用了Pastebin:Here it is。请让我知道,是否仍然应该将其粘贴在这里。
对于此工件,我具有完全相同的设置,对于另一工件,我具有相同的设置,它可以连接到同一服务器,但是使用不同的用户连接到不同的数据库。一个像魅力一样起作用,而这个不一样。我能想到的与此相关的唯一区别是这样的事实,在我得到错误的工件中,Spring Data Redis与Spring Data JPA一起作为依赖项包括在内。
Persistence.xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"
version="2.2">
<persistence-unit name="UsersDS" transaction-type="JTA">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<jta-data-source>jdbc/UsersDS</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.transaction.factory_class"
value="org.hibernate.transaction.JTATransactionFactory"/>
<property name="hibernate.transaction.manager_lookup_class" value="javax.transaction.TransactionManager"/>
<property name="hibernate.transaction.jta.platform" value="Weblogic"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL95Dialect"/>
</properties>
</persistence-unit>
</persistence>
Ui:可能与该问题有关的另一件事是因为我在类路径上同时具有Spring Data JPA和Redis,所以我不得不将JpaRepository接口标记为@NoRepositoryBean
,因为我会得到否则重复。因此,我有一种生成CDI存储库Bean的方法:
@Inject
private EntityManager entityManager;
@Produces
@RequestScoped
public UserRepository userRepository() {
return createRepository(UserRepository.class);
}
private <T extends Repository> T createRepository(Class<T> repositoryClass) {
RepositoryFactorySupport factory = new JpaRepositoryFactory(entityManager);
return factory.getRepository(repositoryClass);
}
UI2:我还用内存数据库中的H2编写了一些集成测试,一切运行顺利
答案 0 :(得分:0)
我有解决方案,可能是一些解决方法或sg,但我别无选择。
那么发生了什么事,(默认情况下)我在weblogic数据源中进行了全局事务处理。关闭它可以解决问题