首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPA :找不到TransactionManager

JPA :找不到TransactionManager
EN

Stack Overflow用户
提问于 2011-11-08 11:27:02
回答 1查看 5.9K关注 0票数 5

我在JSF 2项目中使用JPA 2,所以我在GlassFish v3中配置了我的数据源,一切都很好,但是如果我尝试在Hibernate工具中测试JPA查询,它会给我以下错误:

代码语言:javascript
复制
Sessionfactory error:Could not locate TransactionManager

这是我的persistence.xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="SuaParte" transaction-type="JTA">
        <jta-data-source>jdbc/suaparte_ds</jta-data-source>
        <class>entity.Area</class>
        <properties>
            <property name="eclipselink.logging.level" value="FINE"/>
            <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
        </properties>


    </persistence-unit>
</persistence>

在Eclipse 2项目中,我使用了EclipseLink 2.3 (Indigo)和JPA 2。

编辑遵循@fonini方法,我的hibernate.properties:

代码语言:javascript
复制
hibernate.connection.username=<filled>
hibernate.connection.password=<filled>
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.connection.url=<filled>
hibernate.connection.provider_class=org.hibernate.connection.DriverManagerConnectionProvider
hibernate.datasource=jdbc/suaparte_ds
hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup

但现在又给了我一个错误:

我必须改变我的实体中的id generator吗?

代码语言:javascript
复制
    @Entity
    @Table(name="product")
    public class Product implements Serializable {
        private static final long serialVersionUID = 1L;

        @Id
        @GeneratedValue(strategy=GenerationType.SEQUENCE)
        private Integer id;

        @Size(max=150, message="150 caracteres no máximo")
        private String description;

        // getters and setter
}
EN

回答 1

Stack Overflow用户

发布于 2011-11-08 11:41:58

由于Hibernate工具在Eclipse中运行,所以它无法访问特定于应用服务器的数据源。

可以使用属性文件设置将覆盖数据源的连接。

下面是一个示例文件:

代码语言:javascript
复制
hibernate.connection.username=user
hibernate.connection.password=pass
hibernate.connection.driver_class=org.PostgreSQL.Driver
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
hibernate.connection.url=jdbc:postgresql...

hibernate.connection.provider_class=org.hibernate.connection.DriverManagerConnectionProvider
hibernate.datasource=
hibernate.transaction.manager_lookup_class=
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8049663

复制
相关文章

相似问题

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