`
wanwok
  • 浏览: 31293 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

奇怪的getHibernateTemplate().find()

    博客分类:
  • J2EE
阅读更多
public class SmUsersTbDAOimpl extends HibernateDaoSupport implements SmUserTbDAO{
	/*
	 * 读取用户权限值
	 */
	public List ReadUserValue(String id)
	{
		String HQL = "from SmUsersTb where userno ='"+id+"'"+" and  operprivno like '%ISPT%'";			
		return getHibernateTemplate().find(HQL); 
	}
}


    当我从外面调用的时候,如果库里有多条记录,每次返回的记录的条数会是正确的,但是内容都是重复.只会找出第一条记录,找了半天也不知道是哪出错了.其他的方法都行,就这个不行.哪位帮忙看看.

public class SmUsersTb {
	/*
	 *  用户权限表对应用户管理中心系统表sm_user_priv_tb
	 *  功能:查找用户权限
	 */
	private String userno;// 用户ID
	private String operprivno;// 用户权限	
	
	public SmUsersTb()
	{}
	
	public SmUsersTb(String userno,String operprivno)
	{
		this.userno =userno;
		this.operprivno = operprivno;
	}
	
	public String getOperprivno() {
		return operprivno;
	}
	public void setOperprivno(String operprivno) {
		this.operprivno = operprivno;
	}
	public String getUserno() {
		return userno;
	}
	public void setUserno(String userno) {
		this.userno = userno;
	}
}


<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
    <class name="com.sunyard.ispt.model.impl.SmUsersTb" table="sm_user_priv_tb" schema="dbo" catalog="SYSTEM_MANAGE_DB">
        <id name="userno" type="java.lang.String">
            <column name="user_no" length="20"/>
        </id>
        
        <property name="operprivno" type="java.lang.String">
            <column name="oper_priv_no" length="50" not-null="false"/>
        </property>        
    </class>
</hibernate-mapping>
分享到:
评论
5 楼 cwscwj 2009-02-03  


.hbm配置文件主键配置问题
4 楼 wanwok 2008-07-30  
大概明白是怎么回事了,我改用SQLQuery连上了,还是很感谢你的回复.
3 楼 llade 2008-07-27  
wanwok 写道
  是的,这个表是没有主键的。通过上面的方法是想查到userno下的所有operprivno.这里对于同一个用户可能有很多的权限的。operprivno like '%ISPT%'" 这样我只是减少一点范围,因为表里的数据量比较大。
  刚刚在一个网页上看到一点内容,对hibernate不是很了解,是不是每个模版类都需要一个主键。通过Eclipse映射过来的时候形成了一个联合主键。但是我觉得很不好用,就去掉了。


因为你没有在数据库对此表做主键约束。所以Eclipse映射过啦就是联合主键。

唯一的无意义的主键,主键就像是身份证一样标识一个数据库row,最好就是唯一的一个字段,不要联合主键。不能是有意义的字段,比如说身份证号码做主键,要是有一天输入错误一个身份证号码,而N个关联表的N个记录已经指向这个身份证号码的时候,你就知道修改起来什么是痛苦了。特别是在正在运行的数据库服务器上。

2 楼 wanwok 2008-07-26  
  是的,这个表是没有主键的。通过上面的方法是想查到userno下的所有operprivno.这里对于同一个用户可能有很多的权限的。operprivno like '%ISPT%'" 这样我只是减少一点范围,因为表里的数据量比较大。
  刚刚在一个网页上看到一点内容,对hibernate不是很了解,是不是每个模版类都需要一个主键。通过Eclipse映射过来的时候形成了一个联合主键。但是我觉得很不好用,就去掉了。
1 楼 llade 2008-07-26  
wanwok 写道

String HQL = "from SmUsersTb where userno ='"+id+"'"+" and  like '%ISPT%'";           


既然userno做为ID并且等于某个值了,后面的like '%ISPT%'"有用吗?这个HQL查来查去只可能是1条或者0条记录,
如果查出多条记录,那么user_no列根本不是Primary Key。~~~~~~~~~~·

相关推荐

    gethibernatetemplate的find方法

    gethibernatetemplate的find方法,find(String queryString);find(String queryString , Object value);find(String queryString, Object[] values);findByExample(Object exampleEntity);findByExample(Object ...

    getHibernateTemplate()有模糊查询和 分页

    List&lt;Info&gt; infos = getHibernateTemplate().find(hql, keyword); ``` 在这个例子中,`%`是一个通配符,代表任意字符序列。`find()`方法将执行HQL查询并返回结果集。 2. **分页**: 当数据量较大时,通常需要...

    hibernate模板类详解

    List&lt;User&gt; users = this.getHibernateTemplate().find("from bean.User"); ``` 这条代码会执行一个简单的HQL查询,即“从User表中选择所有记录”,并返回一个包含所有用户对象的列表。 #### 二、find(String ...

    getHibernateTemplate()使用方法

    List&lt;User&gt; users = this.getHibernateTemplate().find("from bean.User u where u.name=?", "test"); ``` 该代码执行了一个条件查询,即获取名字为"test"的所有用户。 ### 3. `find(String queryString, Object[]...

    getHibernateTemplate()查询

    this.getHibernateTemplate().find("from bean.User"); ``` 这条查询会返回数据库中所有`User`对象的集合。 #### 二、`find(String queryString, Object value)` 该方法允许通过一个HQL查询字符串及一个参数值来...

    getHibernateTemplate

    4. **便捷操作**:`getHibernateTemplate()`提供了多种方便的查询方法,如`find()`,可以根据HQL(Hibernate Query Language)或者SQL直接执行查询,返回结果集。此外,还有如`findByExample()`这样的方法,根据实体...

    getHibernateTemplate分页-模糊查询

    ### getHibernateTemplate分页-模糊查询 #### 一、概述 在Java开发中,使用Hibernate进行数据持久化处理是非常常见的做法。特别是在企业级应用中,为了实现高效的数据库操作与管理,开发者经常需要对数据进行分页...

    hql语言中的一些常用的方法

    - **单参数查询**:当查询条件只有一个时,可以使用带有单个参数的方法,例如:`this.getHibernateTemplate().find("from bean.User u where u.name=?", "test")`,这将返回所有名字为“test”的用户。 - **多参数...

    Spring中查询

    List&lt;User&gt; users = this.getHibernateTemplate().find("from bean.User"); ``` ### 二、`find(String queryString, Object value)` 当需要根据某个具体值进行查询时,可以使用此方法。例如,要查找名称为“test”...

    Spring 和hibernate集成自学笔记

    // 示例:List&lt;User&gt; users = this.getHibernateTemplate().find("from bean.User u where u.name like ?", "%test%"); ``` - **多个参数查询** ```java List&lt;User&gt; find(String queryString, Object[] values)...

    Spring中常用的hql查询方法

    List&lt;User&gt; userList = this.getHibernateTemplate().find("from bean.User"); ``` 此方法将返回所有的`User`对象列表。 #### 二、find(String queryString, Object value) 该方法支持通过参数化的方式执行查询,...

    HibernateTemplate及generator用法.doc

    2. 使用`getHibernateTemplate()`,然后调用其提供的方法,如`getHibernateTemplate().find()`等。 通常推荐使用`getHibernateTemplate()`,因为它的优点在于管理Session更为高效。在一个线程内进行多次操作时,`...

    常用的HQL语句!!!!

    List list = this.getHibernateTemplate().find(hql); ``` `find()`方法会返回匹配条件的`PhUser`对象列表。 4. **HQL多表查询**: 多表查询涉及到两个或更多表的联合查询。例如,将`PhCorrelativeUnit`和`...

    这是本人写的论坛系统知识总结

    List l = getHibernateTemplate().find(LOAD_BY_USERNAME, username); // 通过邮箱查询用户信息 List l = getHibernateTemplate().find(LOAD_BY_EMAIL, email); // 通过密码查询用户信息 List l = ...

    jsp中调用dao的getHibernateTemplate()时,报空指针

    "JSP 中调用 DAO 的 getHibernateTemplate() 时报空指针异常的解决方法" 在整合 SSH 框架时,经常会遇到 JSP 中调用 DAO 的 getHibernateTemplate() 时报空指针异常的错误。本文将讲解这个问题的原因和解决方法。 ...

    hibernate API

    List&lt;SellerAppInfo&gt; list = getHibernateTemplate().find("from SellerAppInfo"); ``` - 带条件的查询: ```java list = getHibernateTemplate().find("from SellerAppInfo where seller.id=?", "8a4873793d2...

    Spring中hql语句的常用方法

    List&lt;User&gt; users = this.getHibernateTemplate().find("from bean.User"); ``` - 这里假设`bean.User`是HQL中的实体类名称,查询结果为所有`User`对象的列表。 2. **find(String queryString, Object value)**...

    Struts2 Spring hibernate 国际化 表单验证 安全退出

    这是之前分页的升级版 带国际化 表单验证 用户登录 安全退出 功能都实现了... List list= this.getHibernateTemplate().find("from Students where username=? and password=?", param); return list.isEmpty(); }

    HibernateTemplate及generator用法.docx

    List&lt;Person&gt; personList = getHibernateTemplate().find("from Person"); ``` 或者,如果你需要进行分页查询,可以这样做: ```java int currentPage = 1; int lineSize = 4; String hql = "from Person"; Query ...

    手机充值卡充值

    return (Card)this.getHibernateTemplate().get(Card.class, cardPass); } @Override public void updateCard(Card card) { // TODO Auto-generated method stub this.getHibernateTemplate().update(card...

Global site tag (gtag.js) - Google Analytics