2016-03-27 37 views
1

JPA için oldukça yeni ve EntityManager'ımın persencini/silinmesini vb. Test etmek istedim. veri kaynağına sahip olamadığım bir hatayı alıyorum. Tamamen kaybediyorum, saatlerce çevrimiçi arama yaptım ve web'de herhangi bir cevap bulamadım (veya en azından anlayamıyorum). Herhangi bir yardım takdir edilecektir. Teşekkür ederim!, Unit test java persistence için veri kaynağı alınamıyor. Varlık Yöneticisi

Bu, test sınıftır.

@Transactional 
public class DoctorRepositoryTest 
{ 
    private DoctorRepository dr; 
    private Doctor doctor; 
    private EntityManagerFactory emf 
     = Persistence.createEntityManagerFactory("TestPersistence"); 
    private EntityManager em = null; 


public DoctorRepositoryTest() 
{ 
} 

@BeforeClass 
public static void setUpClass() 
{ 

} 

@AfterClass 
public static void tearDownClass() 
{ 
} 

@Before 
public void setUp() 
{ 




    dr = new DoctorRepository(); 

    doctor = new Doctor(0,"doctorFirstName", "doctorLastName", "4032223333", 
    "123 45 ave NW","Calgary", "AB", "t3k5c9"); 


} 

@After 
public void tearDown() 
{ 
    dr = null; 
    doctor = null; 
} 

/** 
* Testings method for the insertion of Doctor Objects to 
* the database 
*/ 
@Test 
public void testInsert(){ 



    int result; 
    EntityManager em = emf.createEntityManager(); 
    try 
    { 
     em.getTransaction().begin(); 
     em.persist(doctor); 
     em.getTransaction().commit(); 
     result = 1; 
    } 
    catch(Exception e){ 

     result = 0; 
    } 
    finally 
    { 
     em.close(); 
    } 

    assertEquals(result,1); 

} 

Bu benim kalıcılık xml ben almaya devam Hata olduğunu

<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> 
    <persistence-unit name="SunrisePU" transaction-type="JTA"> 
    <jta-data-source>SunriseDB</jta-data-source> 
    <exclude-unlisted-classes>false</exclude-unlisted-classes> 
    <properties/> 
    </persistence-unit> 
    <persistence-unit name="TestPersistence" transaction-type="RESOURCE_LOCAL"> 
    <jta-data-source>SunriseDB</jta-data-source> 
    <properties> 
    </properties> 
    </persistence-unit> 
</persistence> 

olduğunu.

[EL Info]: 2016-03-27 12:50:44.151--ServerSession(957465255)--EclipseLink, version: Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd 

[EL Severe]: ejb: 2016-03-27 12:50:48.588--ServerSession(957465255)--Exception  
[EclipseLink-7060] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.ValidationException 

İstisna Açıklaması: kazanmak Can not veri kaynağı [SunriseDB].

Hata için çok daha fazlası var, ancak temel nedeni, sınama için veritabanıma bağlanamama.

+0

Eğer kök neden olursa http://docs.spring.io/spring/docs/current/spring-framework-reference/html/integration-testing.html –

+0

yararlı olabilir bahar bu bağlantıyı kullanarak Çünkü hatanın nedeni, veritabanınıza bağlanamamanızdır, o zaman araştırmanız gereken problem budur. DB/Server yapılandırmanızın nesi yanlış olduğunu ve niçin ona bağlanamadığınızı öğrenin. Gönderdiğiniz snippet'ler, DB yapılandırmanız yanlışsa alakasız olur. –

+0

projemi çalıştırdığımda, veritabanına yalnızca gayet iyi bağlı, ne yapacağından emin değilim: /. Aşağıda önerilen özellik bölümüne bir şeyler eklemeyi denedim, bu da ne yazık ki yardımcı olmadı. –

cevap

0

Muhtemelen sorun benim durumumda (

<properties> 
     <property name="javax.persistence.jdbc.url" value="jdbc:mysql://127.0.0.1:3306/prytest"/> 
     <property name="javax.persistence.jdbc.user" value="root"/> 
     <property name="javax.persistence.jdbc.password" value="root"/> 
     <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> 
    </properties> 

Kontrol İVTYS'niz bağlı olarak sürücüye doğru yapılandırma ... Eğer persistence.xml dosyasında özellikleri bölümünde hiçbir şey yok olmasıdır olan MySQL)

+0

i Kendi projemle eşleşen preo özelliklerini ekledim, ancak yine de veri kaynağına erişemiyorum. Ne yaparsam yapayım ....... Normal projem iyi çalışır: /. Veritabanı erişimi hızlı ve kolaydır. Ben tam bir kaybettim –