2011-11-08 3 views
5

나는 JSF 2 프로젝트에서 JPA 2를 사용하고, 그래서 글래스 피쉬 v3의 내 데이터 소스, 모든 것이 괜찮 구성,하지만 최대 절전 모드 도구에 JPA 쿼리를 테스트하려고하면이 제공을 찾을 수 없습니다 나를 추적 오차 : 내 이클립스 JSF 2 프로젝트에서 내가는 EclipseLink 2.3 (인디고)와 JPA 2를 사용하고JPA : TransactionManager를

<?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> 

:

Sessionfactory error:Could not locate TransactionManager 

가 여기 내의 persistence.xml이다.

편집 이 @fonini 접근 방식에 따라, 내 hibernate.properties : error

내가 내 기관에서 id generator을 변경해야나요 : 지금

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 

그러나 나에게 또 다른 오류를 준다?

@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 
} 
+0

당신은 글래스 피시 서버에 프로젝트를 배포하는 경우, 작동 :

는 여기에 예제 파일입니까? – fonini

+0

그것은 @fonini를 사용합니다. JPQL 쿼리를 테스트하기 만하면 Hibernate Tools가이 기능을 지원한다는 것을 알았습니다. –

+0

MySQL에는 시퀀스가 ​​없으며 자동 증가와 함께 작동합니다. GenerationType.SEQUENCE를 GenerationType.IDENTITY로 변경해야합니다. – fonini

답변

0

최대 절전 모드 도구는 Eclipse 내부에서 실행되므로 응용 프로그램 서버 관련 데이터 소스에 액세스 할 수 없습니다.

등록 정보 파일을 사용하여 데이터 소스를 대체하는 연결을 설정할 수 있습니다.

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

MySQL에 머무를 수있는 방법은 무엇입니까? MySQL을 사용하고 있습니다. 미안하지만 전에는 언급하지 않았습니다.) –

+0

내 hibernate.properties를 설정할 수 있습니다. 내 게시물을 업데이트합니다. –

+1

방언 : org.hibernate.dialect.MySQLDialect. MyISAM (org.hibernate.dialect.MySQLMyISAMDialect)을 사용하고 있다면 InnoDB (org.hibernate.dialect.MySQLInnoDBDialect)를 사용하고있다. 드라이버 클래스 : com.mysql.jdbc.Driver. URL : jdbc : mysql : // localhost/your_db. 희망이 도움이! – fonini