`
wanwok
  • 浏览: 30498 次
  • 性别: 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 ...

    hibernate模板类详解

    find(String queryString , Object value); 示例:this.getHibernateTemplate().find("from bean.User u where u.name=?", "test"); 这样的例子里面还有很多

    getHibernateTemplate()有模糊查询和 分页

    getHibernateTemplate()有模糊查询和 分页getHibernateTemplate()有模糊查询和 分页

    getHibernateTemplate()查询

    getHibernateTemplate()查询 hibernate hql

    getHibernateTemplate

    getHibernateTemplate()方法

    getHibernateTemplate()使用方法

    整合了hibernate的getHibernateTemplate()使用方法 全面详细 带有相应的例子

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

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

    hibernate保存不到数据1

    解决getHibernateTemplate().save ()不能将数据保存到数据库的问题JusterDu 2016-03-15 08:38:57 1857

    getHibernateTemplate分页-模糊查询

    getHibernateTemplate分页-模糊查询.hibernate查询以及分页查询等方法使用。

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

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

    手机充值卡充值

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

    图书查询-Java-Web程序设计教程-[共2页].pdf

    在 DAO 实现类 BookDAO.java 代码如下: public List getRequiredBookByName(String name){ try{ List books=this.getHibernateTemplate(). find("from Book where bookname like '%"+name+"%'"); return books; }...

    java:递归取出List中的元素

    List ls = dao.getHibernateTemplate().find(hql); Iterator it = ls.iterator(); if(it.hasNext()){ // while 用这个的时候和下面的一样 Object[] obj = (Object[]) it.next(); ...

    三大框架下分页源代码

    log.debug("find TblNewsclass instance"); try { String sql = "select new TblNews(id,title,pubdate,status) from TblNews"; Query query = getHibernateTemplate().getSessionFactory()....

    ssh(structs,spring,hibernate)框架中的上传下载

    12. return (Tfile) getHibernateTemplate().get(Tfile.class, fileId); 13. } 14. public void save(Tfile tfile) 15. { 16. getHibernateTemplate().save(tfile); 17. getHibernateTemplate().flush(); 18. } 19. ...

    spring_MVC源码

    弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...

    Hibernate使用技巧汇总

    public class UserDAO extends HibernateDaoSupport implements IUserDAO { public void insertUser(User user) { getHibernateTemplate().saveOrUpdate(user); } } &lt;br&gt; 上面的...

    Hibernate中Criteria的完整用法.docx

    Spring 的框架提供了getHibernateTemplate ().findByCriteria(detachedCriteria) 方法可以很方便地根据DetachedCriteria 来返回查询结 果。 DetachedCriteria 提供了 2 个静态方法 forClass(Class) 或 forEntityName...

    spring 理解文件HibernateDaoSupport

    .相同点:在applicationConext.xml中 ... HibernateDaoSupport: 在impl中要调用的方法要getHibernateTemplate().delete(user); UserDaoHiberateImpl: 在impl中要调用的方法要hibernateTemplate.save(user);

    spring_demo:Spring MVC示范项目

    在更新或删除数据时,必须调用getHibernateTemplate().flush(); 且在web.xml中添加 &lt;filter&gt;openSessionInViewFilter &lt;filter&gt;org.springframework.orm.hibernate4.support.OpenSessionInViewFilter &lt;param&gt;...

Global site tag (gtag.js) - Google Analytics