我明明在KhClient这个类中定义了构造器,可是运行的时候一直提示说:Unable to locate appropriate constructor on class [com.struts.form.KhClient],不知道哪里有问题,请大家帮帮忙
action的代码:objectDao = new ObjectDao<KhClient>();
String hql = "select new KhClient(k.CGrade,k.CDnumber,k.CDmoney,k.CClientname," +
"k.CPoint, k.CClientcard) from KhClient as k,XtClientGrade as x" +
" where k.CGrade=x.CKind and k.CDnumber>=x.CDnumber" +
" or k.CDmoney>=x.CDmoney or k.CPoint>=x.CPoint ";
List<KhClient> list =(List<KhClient>) objectDao.queryList(hql);
request.setAttribute("list", list);khClient.java的结构public class KhClient extends org.apache.struts.action.ActionForm implements
java.io.Serializable { // Fields private Integer CCid; private String CClientcode; private String CClientname; private String CSex; private Date CBirthday; private Long COld; private String CIdcard; private String CClientcard; private String CPassword; private Date CDate;
.....
//用到的构造器
public KhClient(String CGrade, Long CDnumber ,Double CDmoney,
Double CPoint,String CClientname, String CClientcard) {
this.CGrade = CGrade;
this.CDnumber = CDnumber;
this.CDmoney = CDmoney;
this.CClientname = CClientname;
this.CPoint = CPoint;
this.CClientcard = CClientcard;
}
不知道是不是数据类型有问题
action的代码:objectDao = new ObjectDao<KhClient>();
String hql = "select new KhClient(k.CGrade,k.CDnumber,k.CDmoney,k.CClientname," +
"k.CPoint, k.CClientcard) from KhClient as k,XtClientGrade as x" +
" where k.CGrade=x.CKind and k.CDnumber>=x.CDnumber" +
" or k.CDmoney>=x.CDmoney or k.CPoint>=x.CPoint ";
List<KhClient> list =(List<KhClient>) objectDao.queryList(hql);
request.setAttribute("list", list);khClient.java的结构public class KhClient extends org.apache.struts.action.ActionForm implements
java.io.Serializable { // Fields private Integer CCid; private String CClientcode; private String CClientname; private String CSex; private Date CBirthday; private Long COld; private String CIdcard; private String CClientcard; private String CPassword; private Date CDate;
.....
//用到的构造器
public KhClient(String CGrade, Long CDnumber ,Double CDmoney,
Double CPoint,String CClientname, String CClientcard) {
this.CGrade = CGrade;
this.CDnumber = CDnumber;
this.CDmoney = CDmoney;
this.CClientname = CClientname;
this.CPoint = CPoint;
this.CClientcard = CClientcard;
}
不知道是不是数据类型有问题
第二,你应该严格遵守JAVA的命名规则,一个变量命名是 xxxYyyZzz,第一个字母小写,随后每个单词的首字母大写;只有类名才会用到首字母大写。如果不遵守JAVA规则的话,你很有可能有小的拼写错误而造成Hibernate不能识别。