2011-10-04 4 views
3

persistence.xml없이 코드에서 EntityManager를 만들어야합니다 ...속성이있는 persistence.xml없이 코드에서 EntityManager를 만드는 OpenJPA

 

props.put("openjpa.ConnectionURL", "jdbc:sqlserver://databasehost:3306; DatabaseName=dbname; selectMethod=cursor;create=true"); 
    props.put("openjpa.ConnectionDriverName","com.mysql.jdbc.Driver"); 
    props.put("openjpa.ConnectionUserName", "dbname"); 
    props.put("openjpa.ConnectionPassword", "password"); 
    props.put("openjpa.jdbc.SynchronizeMappings", "buildSchema"); 
    props.put("openjpa.Log", "DefaultLevel=WARN, Runtime=INFO, Tool=INFO, SQL=TRACE"); 
    props.put("openjpa.RuntimeUnenhancedClasses", "supported"); 

    EntityManagerFactory factory = Persistence.createEntityManagerFactory("wp"); 
    em = factory.createEntityManager(props); 

.. 그리고 em = factory.createEntityManager (소품)를 호출 할 때 :

 

javax.persistence.PersistenceException: No persistence providers available for "wp" after trying the following discovered implementations: org.apache.openjpa.persistence.PersistenceProviderImpl 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:182) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:72) 
    at dao.wp.WP_EMH.getCurrentEntityManager(WP_EMH.java:27) 

tag

PROVIDER- org.apache.openjpa.persistence.PersistenceProviderImpl -/PROVIDER

에 의해 표현되는 persistence.xml에 대한 언급이 없다는 것을 이해하십시오. 어떻게 이것을 Properties에 추가해야합니까? 아니면 그것을 해결하는 방법? 그리고 두 번째 질문은 persistence.xml에 엔티티 클래스가 추가된다는 것입니다. 속성으로 이것을 해결하는 방법?

thanks

+0

openjpa.RuntimeUnenhancedClasses = supported ...를 설정하지 마십시오. 언젠가는 길 아래로 물러 설 것입니다. 더 나은 방법은 빌드 시간 향상을 구성하는 것입니다. – Rick

답변

4

javax.persistence.Persistence.createEntityManagerFactory(
    String persistenceUnitName); 

persistence.xml의 구성을 예상하는 방법. 속성지도를

javax.persistence.Persistence.createEntityManagerFactory(
    String persistenceUnitName, Map properties); 

으로 제공하십시오. 분명히 속성 집합이 불완전합니다. 예를 들어, 영속 클래스 이름이 부족합니다 :

+0

createEntityManagerFactory에 속성 맵을 제공하는 것이 실제로 작동하는지 또는 이것이 가정인가를 확인 했습니까? – Rick

+0

이것은 현재 할당에서 EMF를 Spring에 의해 간접적으로 구성하는 방법입니다. 우리는 persistence.xml을 사용합니다. 나는 팔콘 씨의 피드백에 의존하고 있습니다. – MaDa

+0

나는 당신이 생각해내는 것을보고 싶어합니다. persistence.xml 파일을 갖는 것이 필요하다는 것은 거의 확신합니다. – Rick

관련 문제