2016-11-07 146 views
1

我在我的DAO層中使用Spring JPA。我有一個有實體屬性Client內的實體Projet:在我的DAO接口,我有以下規格獲取Spring實體屬性JPA

Project.java

@Entity 
public class Project { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private int projetId; 

    private String libelle; 

    @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) 
    @JoinColumn(name="client_id") 
    private Client client; 

    // ... constructors, getters & setters 
} 

Client.java

@Entity 
public class Client { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private int clientId; 

    private String denomination; 

    // ... constructors, getters & setters 
} 

ProjetDao.java

@Repository 
@Transactional 
public interface ProjetDao extends CrudRepository<Projet, Integer> { 

    @Transactional 
    public Projet findByLibelle(String libelle); 

    @Transactional 
    public Projet findByProjetId(int projetId); 
} 

我的問題是:如何我在DAO接口指定將返回不同的所有客戶List<Client>的方法?

+0

嘗試使用返回一個列表 Abdelhak

+0

是準確的,我想回到列表 marherbi

+0

@MohamedRedaArherbi我給你與參考文件 – xenteros

回答

1

documentationJIRA:內置到Spring數據倉庫基礎設施

List<Project> findAllDistinctBy(); 

查詢生成器機制是在庫的實體建設制約查詢有用。該機制剝離前綴查找... By,read ... By,query ... By,count ... By,並得到... By方法並開始解析其餘部分。引入子句可以包含更多表達式,例如在要創建的查詢上設置不同的標誌。但是,第一個By作爲分隔符來指示實際標準的開始。在非常基本的層次上,您可以定義實體屬性的條件,並將它們與And和Or連接起來。

+0

謝謝您的回答,但我希望讓所有客戶端都能在沒有參數的情況下進行選擇。 – marherbi

+0

findAllDistinct – xenteros

+0

對不起,它顯示錯誤'找不到類型爲Project!'的屬性findAllDistinct。我在Dao寫的方法是'public List findAllDistinct(); ' – marherbi

0

您正在處理一對一的關係,在這種情況下,我猜想您需要的列表與特定項目並不真正相關,您只需要一個不同的客戶端列表。 您需要爲Client實體創建另一個存儲庫(ClientRepository),並在此存儲庫中添加一個findAllDistinct方法。