2017-06-13 166 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; 
    } 

此方法返回ME/ID和数字/但我只需要数

回答

-1

有两种方法可以解决这个问题,可以选择申请从黑名单中使用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; 
    } 

我需要这个..也许有人会帮