Hibernate与不同的对象构造函数

时间:2016-12-16 09:37:29

标签: java hibernate

我有一个hibernate / struts查询,通过电话和邮件选择不同的订单。

 select.append("select distinct new no.projectname.domain.Order(ord.telephone, ord.email) from Order ord

和Order中的构造函数:

public Order(String telephone, String email) {
    this.telephone = telephone;
    this.email = email;
}

我现在想要创建一个(或两个)查询,用户可以选择是否需要不同的电话或不同的邮件

 if(phone) {
      select.append("select distinct new no.projectname.domain.Order(ord.telephone) from Order ord
 } else {
      select.append("select distinct new no.projectname.domain.Order(ord.mail) from Order ord
 }

但是如何让对象Order中的构造函数知道我传了一个电话或电子邮件?

有没有办法命名构造函数? 像这样:

 select distinct new no.projectname.domain.Order.PhoneConstructor(telephone)

1 个答案:

答案 0 :(得分:0)

您可以使用3个构造函数

执行以下操作
 select.append("select distinct") ;

    if(email != null && telephone != null) {
     select.append("new no.projectname.domain.Order(ord.telephone, ord.email)");
    } 

    else if(email != null){
    select.append("new no.projectname.domain.Order( ord.email)");
    }

    else if(telephone != null){
    select.append("new no.projectname.domain.Order(ord.telephone)");
    }

    else {        
    }

    select.append(" from Order ord");