2017-06-13 13 views
0

私は2エンティティ ブラックリストは基準は

public class BlackList { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    @Column(name = "id", unique = true, nullable = false) 
    private Integer id; 

    @ManyToOne 
    @JoinColumn(name = "applicant_id", unique = true) 
    private Applicant applicant; 

public class Applicant { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    @Column(name = "id", unique = true, nullable = false) 
    private Integer id; 

    @Column(name = "number", nullable = false, unique = true) 
    private String number; 

私を助けてください持っている休止状態。このクエリのために私にデータを取得するための基準を作成する方法: select applicant.number from black_list inner join applicant on black_list.applicant_id = applicant.idこのメソッドは私を返さ

public List<BlackList> getAll(){ 
     Session session =sessionFactory.getCurrentSession(); 
     ProjectionList projectionList = Projections.projectionList(); 
     Criteria criteria = session.createCriteria(BlackList.class); 
     projectionList.add(Projections.property("applicant")); 
     criteria.setProjection(projectionList); 
     List res = criteria.list(); 
     return res; 
    } 

/idと数/しかし、私は唯一の数に必要

答えて

-1

、あなたが応募者を選択することができ、これをアプローチするには、2つの方法があります。ブラックリストからhql.Orを使用して、申請者に逆結合を追加して、「エイリアスを作成」し、「非ヌル」制限を追加することができます。私はこれを必要と

+0

たちは、私がこれを書くために助けることができるのに役立ちますか? –

0
public List<String> getAll(){ 
     Session session = sessionFactory.getCurrentSession(); 
     ProjectionList projectionList = Projections.projectionList(); 
     Criteria criteria = session.createCriteria(BlackList.class); 
     criteria.createCriteria("applicant", "a"); 
     projectionList.add(Projections.property("a.number")); 
     criteria.setProjection(projectionList); 
     List<String> res = criteria.list(); 
     return res; 
    } 

...たぶん誰かが