首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >H2数据库/ Bitronix /Database

H2数据库/ Bitronix /Database
EN

Stack Overflow用户
提问于 2013-09-30 11:49:47
回答 2查看 1.2K关注 0票数 1

为了对功能进行简单的测试(在教程之后),我尝试使用Bitronix和H2内存数据库建立一个原始的JTA环境。在简单的Java应用程序(没有Java、没有服务器等)中,测试应该以单元测试的形式运行。

不幸的是,我无法运行它,这是我的设置:

  1. 我在教程之后添加了一些jars (通过maven):

代码语言:javascript
复制
- btm, h2, hibernate-entitymanager and hibernate-jpa-2.0-api 

  1. 我在类路径中添加了persistence.xml、hibernate.cfg.xml和一个jndi.properties文件。
  2. 在测试方法(肮脏.)我把这个代码: PoolingDataSource ds =新的PoolingDataSource();ds.setUniqueName( "jdbc/BitronixJTADataSource“);ds.setClassName( "org.h2.jdbcx.JdbcDataSource”);ds.setMaxPoolSize( 3 );ds.setAllowLocalTransactions(真);ds.getDriverProperties().put(“用户”,"sa“);ds.getDriverProperties().put(”密码“,"sasa”);ds.getDriverProperties().put( "URL","jdbc:h2:mem:mydb“);ds.init();Persistence.createEntityManagerFactory("org.persistence.jpa");= EntityManagerFactory emf

这是我的persistence.xml配置:

代码语言:javascript
复制
<persistence-unit name="org.persistence.jpa" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>jdbc/BitronixJTADataSource</jta-data-source>
    <class>org.drools.persistence.info.SessionInfo</class>
    <class>org.drools.persistence.info.WorkItemInfo</class>
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />
        <property name="hibernate.max_fetch_depth" value="3" />
        <property name="hibernate.hbm2ddl.auto" value="update" />
        <property name="hibernate.show_sql" value="true" />
        <property name="hibernate.jndi.class" value="bitronix.tm.jndi.BitronixInitialContextFactory"/> 
        <property name="hibernate.transaction.manager_lookup_class"
            value="org.hibernate.transaction.BTMTransactionManagerLookup" />
    </properties>
</persistence-unit>

和java.naming.factory.initial=bitronix.tm.jndi.BitronixInitialContextFactory :jndi.properties

问题是:我得到了这个堆栈:

代码语言:javascript
复制
javax.persistence.PersistenceException: [PersistenceUnit: org.drools.persistence.jpa] Unable to build EntityManagerFactory
[...]
Caused by: org.hibernate.service.jndi.JndiException: Error parsing JNDI name [jdbc/BitronixJTADataSource]
[...]
Caused by: javax.naming.OperationNotSupportedException
[...]

所以这里肯定出了点问题。你能帮帮我吗?

EN

回答 2

Stack Overflow用户

发布于 2013-09-30 13:04:18

我可以通过使用Hibernate 3.x而不是4.x ->来解决这个问题,但我没有做进一步的调查。

票数 1
EN

Stack Overflow用户

发布于 2013-10-04 19:33:13

“我可以通过使用Hibernate 3.x而不是4.x ->来解决这个问题,但我没有做进一步的调查。”

您所说的“可以”是指“我认为”,还是指您让它与Hibernate 3.x一起工作?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19093482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档