2016-09-06 99 views
0

我有彈簧數據jpa repository.I該實體包含主鍵id int和ipaddress字符串。該表一次只包含1條記錄,否則爲空。 如何使用JPA檢索記錄,如果未找到,則返回null。使用Spring Data檢索記錄JPA

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

使用'findAll()'和管理你自己在你的服務中的空轉換,或者寫一個查詢。 –

回答

0

根據該命名約定,則應該與名稱findById(Integer id)(假設Id是主鍵)

+0

我不想像傳遞主鍵那樣做。如果一些主鍵被改變了,那麼我必須再次更改代碼。 – boycod3

0

假設有一個A類如下所示

class A{ 
     private int id; 
     private String data; 

     // getters and setters 

    } 
定義該方法

您現在可以通過以下方式搜索項目。

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

顯示'antlr.NoViableAltException:意外的標記:*' – boycod3

+0

將@Query(「SELECT * FROM a limit 1;」)'改爲'@Query(「SELECT a FROM a limit 1;」)'它應該可以工作。 – sz4b0lcs

+0

你可以像@ sz4b0lcs所說的那樣做,或者你可以在你的實體/域類中使用'@Table(name =「a」)'來定義表名,來命名數據庫中形成的表 –