2016-09-06 3 views
0

Ich habe Federdaten jpa Repository.I die Entität enthalten Primärschlüssel-ID int und ipaddress Zeichenfolge. Die Tabelle enthält jeweils nur einen Datensatz, ansonsten null. Wie lade ich den Datensatz mit JPA, wenn es nicht gefunden wird, zurück null.Abrufen des Datensatzes mit Spring Data JPA

 @Repository 
     public interface IpConfigRepository extends JpaRepository<IpConfig, Integer> { 
     // 
     IpConfig findIpConfig(); 
     } 
+0

Verwenden Sie 'findAll()' und verwalten Sie die Null-Konvertierung selbst in Ihrem Dienst, oder schreiben Sie eine Abfrage. –

Antwort

0

Nach der Namenskonvention, sollte das Verfahren mit dem Namen findById(Integer id) (nimmt die Id ist der Primärschlüssel) definiert

+0

Ich möchte es nicht wie den Primärschlüssel übergeben. Wenn etwas wie der Primärschlüssel geändert wurde, dann muss ich den Code erneut ändern. – boycod3

0

Angenommen, Sie sind eine Klasse A haben, wie unten

gezeigt
class A{ 
     private int id; 
     private String data; 

     // getters and setters 

    } 

Sie können die Elemente jetzt auf folgende Arten durchsuchen.

public interface ARepo extends JpaRepository<A,Integer>{ 

    // get all the records from table. 
    List<A> findAll(); 

    // find record by id 
    A findById(int id); 

    // find record by data 
    A findByData(String data); 

    // find by date created or updated 
    A findByDateCreated(Date date); 

    // custom query method to select only one record from table 
    @Query("SELECT * FROM a limit 1;") 
    A findRecord(); 



} 
+0

zeigt 'antlr.NoViableAltException: unerwartetes Token: *' – boycod3

+0

Ändern Sie '@Query (" SELECT * FROM ein Limit 1; ")' in '@Query (" SELECT a FROM A a limit 1; ")' und es sollte funktionieren . – sz4b0lcs

+0

können Sie tun, wie von @ sz4b0lcs erwähnt, oder Sie können den Tabellennamen mit '@Table (name =" a ")' in Ihrer Entität/Domain-Klasse definieren, um die in der Datenbank gebildete Tabelle zu benennen –