遇到的问题:hibetnate中用Example查询时,生成sql语句时会自动增加this_ where (this_.age=?);User对象的属定义:
private int id;
private String name;
private Date date;
private int age;User.hbm.xml定义
<class name="com.ing.springhibernate.model.User" table="huser">
<id name="id" column="id">
<generator class="identity">
</generator>
</id>
<property name="name" type="java.lang.String"></property>
<property name="age" type="int"></property>
<property name="date" type="java.util.Date"></property>
</class>getUserListExample的定义:
public List getUserListExample(final Object object) {
List l =
(List) this
.getHibernateTemplate()
.execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException {
return session
.createCriteria(object.getClass())
.add(Example.create(object))
.list();
}
});
return l;
}调用语句:user=new User();
user.setName("xiaozhang2");
udh.getUserListExample(user);操作过程:实例化一个User对象,给getUserListExample(final Object object);后台打印的sql
Hibernate: select this_.id as id0_0_, this_.name as name0_0_, this_.age as age0_0_, this_.date as date0_0_ from huser this_ where (this_.name=? and this_.age=?)
当修改User的age属性的类型为Integer时,此错误解决但不知道具体原因,请告诉原因?
修改后的配置如下:
user属性:
private int id;
private String name;
private Date date;
private java.lang.Integer age;
user.hbm.xml
<class name="com.ing.springhibernate.model.User" table="huser">
<id name="id" column="id">
<generator class="identity">
</generator>
</id>
<property name="name" type="java.lang.String"></property>
<property name="age" type="java.lang.Integer"></property>
<property name="date" type="java.util.Date"></property>
</class>
private int id;
private String name;
private Date date;
private int age;User.hbm.xml定义
<class name="com.ing.springhibernate.model.User" table="huser">
<id name="id" column="id">
<generator class="identity">
</generator>
</id>
<property name="name" type="java.lang.String"></property>
<property name="age" type="int"></property>
<property name="date" type="java.util.Date"></property>
</class>getUserListExample的定义:
public List getUserListExample(final Object object) {
List l =
(List) this
.getHibernateTemplate()
.execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException {
return session
.createCriteria(object.getClass())
.add(Example.create(object))
.list();
}
});
return l;
}调用语句:user=new User();
user.setName("xiaozhang2");
udh.getUserListExample(user);操作过程:实例化一个User对象,给getUserListExample(final Object object);后台打印的sql
Hibernate: select this_.id as id0_0_, this_.name as name0_0_, this_.age as age0_0_, this_.date as date0_0_ from huser this_ where (this_.name=? and this_.age=?)
当修改User的age属性的类型为Integer时,此错误解决但不知道具体原因,请告诉原因?
修改后的配置如下:
user属性:
private int id;
private String name;
private Date date;
private java.lang.Integer age;
user.hbm.xml
<class name="com.ing.springhibernate.model.User" table="huser">
<id name="id" column="id">
<generator class="identity">
</generator>
</id>
<property name="name" type="java.lang.String"></property>
<property name="age" type="java.lang.Integer"></property>
<property name="date" type="java.util.Date"></property>
</class>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货