RT,帮我写一个通过userid查询,返回一个list的东西吧 public List findByProperty(String propertyName, Object value) {
log.debug("finding Order instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from Order as model where model."
+ propertyName + "= ?";
Query queryObject = getSession().createQuery(queryString);
queryObject.setParameter(0, value);
return queryObject.list();
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}hibernate自动生成的DAO里面有它,但是用了压根查不出来,userid不是主键,求大神帮忙啊,hqlHibernate
log.debug("finding Order instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from Order as model where model."
+ propertyName + "= ?";
Query queryObject = getSession().createQuery(queryString);
queryObject.setParameter(0, value);
return queryObject.list();
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}hibernate自动生成的DAO里面有它,但是用了压根查不出来,userid不是主键,求大神帮忙啊,hqlHibernate
public List findByUserid(Object id) {
return findByProperty("userid", id);
}应该就能行了。注意下对应的大小写,userid应该和hibernate自动生成的那个名称是一样的,而不是数据库表的列名
看注释的地方!!!!public List findByProperty(String propertyName, Object value) {
log.debug("finding Order instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from Order as model where model."
+ propertyName + "= ?";
Query queryObject = getSession().createQuery(queryString);
//你的userid如果是String
//queryObject.setString(0, value);
//你的userid如果是Long
//queryObject.setLong(0, value);
//其他都类似
return queryObject.list();
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}
看注释的地方!!!!public List findByProperty(String propertyName, Object value) {
log.debug("finding Order instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from Order as model where model."
+ propertyName + "= ?";
Query queryObject = getSession().createQuery(queryString);
//你的userid如果是String
//queryObject.setString(0, value);
//你的userid如果是Long
//queryObject.setLong(0, value);
//其他都类似
return queryObject.list();
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}
还是不能用= = 不知道怎么了。。哎 疯了,明天就要交了
我配置文件就是Order.hbm.xml对吧?我那里面<hibernate-mapping default-lazy="false">
<class catalog="user" name="dao.Order" table="order">
<id name="orderid" type="java.lang.String">
<column length="20" name="orderid"/>
<generator class="assigned"/>
</id>
<property generated="never" lazy="false" name="userid" type="java.lang.String">
<column length="20" name="userid"/>
</property>
<property generated="never" lazy="false" name="productid" type="java.lang.String">
<column length="20" name="productid"/>
</property>
<property generated="never" lazy="false" name="totalprice" type="java.lang.String">
<column length="20" name="totalprice"/>
</property>
</class>
</hibernate-mapping> 也是userid啊,跟数据库列名是一样的
我配置文件就是Order.hbm.xml对吧?我那里面<hibernate-mapping default-lazy="false">
<class catalog="user" name="dao.Order" table="order">
<id name="orderid" type="java.lang.String">
<column length="20" name="orderid"/>
<generator class="assigned"/>
</id>
<property generated="never" lazy="false" name="userid" type="java.lang.String">
<column length="20" name="userid"/>
</property>
<property generated="never" lazy="false" name="productid" type="java.lang.String">
<column length="20" name="productid"/>
</property>
<property generated="never" lazy="false" name="totalprice" type="java.lang.String">
<column length="20" name="totalprice"/>
</property>
</class>
</hibernate-mapping> 也是userid啊,跟数据库列名是一样的
对啊 你的userid是String类型 我一般都是这么用 query.setString(0,userid)
我配置文件就是Order.hbm.xml对吧?我那里面<hibernate-mapping default-lazy="false">
<class catalog="user" name="dao.Order" table="order">
<id name="orderid" type="java.lang.String">
<column length="20" name="orderid"/>
<generator class="assigned"/>
</id>
<property generated="never" lazy="false" name="userid" type="java.lang.String">
<column length="20" name="userid"/>
</property>
<property generated="never" lazy="false" name="productid" type="java.lang.String">
<column length="20" name="productid"/>
</property>
<property generated="never" lazy="false" name="totalprice" type="java.lang.String">
<column length="20" name="totalprice"/>
</property>
</class>
</hibernate-mapping> 也是userid啊,跟数据库列名是一样的
对啊 你的userid是String类型 我一般都是这么用 query.setString(0,userid)
可是还是不管用= =怎么办哎
查查对应的jsp和action,看看是不是参数传递的有问题。尤其是this.XX和this.getXX这种地方