JPA - EntityManager

0

Witam, nie moge poradzic sobie uruchomieniem EntityManagera, caly czas wyskakuje mi nullpointerException. Ale moze od poczatku. Mam projekt w Eclipsie, utowrzony za pomoca mavena i dynamic project. Stworzylem persistence.xml, ktora wyglada tak :


?xml version="1.0" encoding="UTF-8"?>
<persistence 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" version="2.0">
  <persistence-unit name="TestPe" transaction-type="RESOURCE_LOCAL">
    <properties>
      <!-- Common properties -->
      <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
      <property name="javax.persistence.jdbc.url" value="jdbc:derby:memory:test-jpa;create=true"/>
      <property name="javax.persistence.jdbc.user" value=""/>
      <property name="javax.persistence.jdbc.password" value=""/>
    </properties>
  </persistence-unit>
</persistence>

Wrzucalem je juz w rozne foldery, np . src/main/resources , src/test/resources, jak rowniej w src/main/webapp/META-INF . Niestety zawsze wyskakuje mi nullponterException. Gdzie mam wrzucic moj plik persistence, bo juz sam nie wiem. Wrzuce jeszcze test :


private EntityManager em;
private static EntityManagerFactory factory;

    @Before
    public void setUp() throws Exception {

        factory = Persistence.createEntityManagerFactory("TestPe");
    em = factory.createEntityManager();  <--- zawsze na tym miejscu wyskakue Exception

    }

Za pomoc wielkie dzieki!!!!

0

spróbuj wrzucić plik peristence.xml do: src/main/resources/META-INF/ (lub src/test/resources/META-INF/)
jakby coś nie działało to zrób clean-a projektu Project->Clean i (lub) mvn clean package

0

Ja w persistence.xml nie widze providera ktory by mial byc uzyty - czy tak moze byc to nie jestem pewien.

0

Witam, dzieki za odpowiedzi. Utworzylem folder META-INF w src/test/resources i zadzialalo. Aczkolwiek musialem zmodyfikowac Mavena. Dziwie sie troche, poniewaz przedtem w dependency mialem eclipsLinka i do tego czyste javax.persistence, albo mix . W takim przypadku nie dzialalo. Musialem zdefiniowac javax.persistence od eclipsa, czyli org.eclipse.persistence. Teraz powinno dzialac. Ale nie wiem, dlaczego nalezy miec javax od eclipsa. Dla wszystkich ktorzy maja problem z tym, wrzuce moja konfiguracje, moze komus bedzie pomocna.

POM:


...
    <repositories>
       <repository>
           <id>EclipseLink Repo</id>
           <a href="http://eclipse.a3-system.be/rt/eclipselink/maven.repo">http://eclipse.a3-system.be/rt/eclipselink/maven.repo</a>
       </repository>
    </repositories>

    <dependencies>
                <dependency>
            <groupId>org.eclipse.persistence</groupId> 
            <artifactId>eclipselink</artifactId> 
            <version>2.3.0</version> 
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId> 
            <artifactId>javax.persistence</artifactId> 
            <version>2.0.3</version> 
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.9</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derby</artifactId>
            <version>10.8.2.2</version>
        </dependency>
    </dependencies>  

persistence.xml :


 <persistence-unit name="TestPe" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
               <class>com.database.KlasaEntity</class>

    <properties>
      <!-- Common properties -->
      <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
      <property name="javax.persistence.jdbc.url" value="jdbc:derby:memory:test-jpa;create=true"/>
      <property name="javax.persistence.jdbc.user" value=""/>
      <property name="javax.persistence.jdbc.password" value=""/>

      <property name="eclipselink.ddl-generation" value="create-tables" />
      <property name="eclipselink.ddl-generation.output-mode" value="database" />
      <property name="eclipselink.logging.level" value="WARNING"/>

      </properties>
 </persistence-unit>

Ps. w czasie kiedy ja to robilem, dzialalo. W miedzyczasie mogly zmienic sie repositories lub dependencies w pom.xml

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0