我有一个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)
答案 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");