2016-11-07 5 views
1

私はDAOレイヤでSpring JPAを使用しています。私は以下の仕様を持っている私のDAOインタフェースでClient.javaSpringでエンティティプロパティを取得JPA

@Entity 
public class Client { 

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

    private String denomination; 

    // ... constructors, getters & setters 
} 

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 
} 

:私は、エンティティProjetエンティティプロパティClientの内側持つがあります。

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>に明確なすべてのクライアントを返します方法を指定することができますか? documentationJIRAから

+0

一覧 Abdelhak

+0

を返すメソッドを使用してみてくださいはい、正確に、私はそのツールがありますが、ただ、ノートなどのドキュメント – marherbi

+0

@MohamedRedaArherbiを返すようにしたいですIDプロパティ(Spring Dataの 'Identifiable'インターフェース)の名前として' id'を使うだけで、よりスムーズに動作し、リポジトリインターフェースで組み込み 'findOne'メソッドを使うことができます。 – xenteros

答えて

1

List<Project> findAllDistinctBy(); 

春データリポジトリインフラストラクチャに組み込まれたクエリビルダメカニズムは、リポジトリの実体上の制約クエリを構築するために有用です。このメカニズムは、接頭辞を削除します。... By、read ... By、query ... By、count ... By、get ...メソッドからByを呼び出し、残りの部分の解析を開始します。 introduction句には、作成するクエリにdistinctフラグを設定するDistinctなどの式を追加できます。ただし、最初のByは、実際の基準の開始を示す区切り文字として機能します。非常に基本的なレベルでは、エンティティプロパティの条件を定義し、それらをAndおよびOrと連結することができます。

+0

あなたの答えをありがとうございます、しかし、私は選択のためのパラメータなしですべてのクライアントを区別したいと思います。 – marherbi

+0

findAllDistinct – xenteros

+0

申し訳ありませんでした、それは私にエラーが表示されます 'NoタイプのプロジェクトのためのfindAllDistinctが見つかった! '。私のDaoで書いたメソッドは、 'public list findAllDistinct()です。 ' – marherbi

0

あなたは1対1の関係を扱っています。この場合、必要なリストは実際には特定のプロジェクトに関連していないと思います。 クライアントエンティティ用の別のリポジトリ(ClientRepository)を作成し、このリポジトリにfindAllDistinctメソッドを追加する必要があります。

関連する問題