我有一个实体类,
user{
id,
username,
userpass
}
我想根据username和userpass查找目标,username是唯一索引,能不能不用hql语句来查?
user{
id,
username,
userpass
}
我想根据username和userpass查找目标,username是唯一索引,能不能不用hql语句来查?
解决方案 »
- struts2 我用了一个标签 超连接 不起作用
- MyEclipse导入项目问题
- 菜鸟来问是学ASP.NET还是JAVA的什么spring什么的框架,~~~~~标题要长~~~~~标题要长
- javascript如何判断输入的是否为半角的数字和英文怎么做?
- 【求助】程序报错,帮忙分析一下
- 菜鸟求助在Jbuilder2007下使用连接池
- 问个问题
- 关于中文问题的三篇文章(转载)
- 菜鸟问题!大家救命
- jtds-1.2.jar做为jdbc驱动,当statement中设置的maxRow是怎么实现的
- JSF开发的分页列表程序,子窗口如何刷新父窗口
- struts tag 如何对list对象的属性值进行条件判断
get(class clazz,Serializable s);
get(String str,Serializable s);
get(class clazz,Serializable s, lockmode lm);
get(String str,Serializable s, lockmode lm);
都是什么意思啊
List list=session.CreateQuery(hql).list();
//sq.addEntity(User.class);//查询结果转换成对象
List list = sq.list();
get(class clazz,Serializable s);
你的clazz应该是实体bean的类名比如User.class,
没记错后面应该是序列化的id号
似乎hibernate3以后的版本不能正常使用sql查询了。
load是支持的
session.get("com.xxx.dao.Student", 1);
session.get(Student.class, 1);最后一个参数我只见过用在悲观锁上..
LockMode是 定义了Hibernate所需的不同的锁定级别。一个锁定 可以通过以下的机制来设置:
当Hibernate更新或者插入一行记录的时候,锁定级别自动设置为LockMode.WRITE。
当用户显式的使用数据库支持的SQL格式SELECT ... FOR UPDATE 发送SQL的时候,锁定级别设置为LockMode.UPGRADE
当用户显式的使用Oracle数据库的SQL语句SELECT ... FOR UPDATE NOWAIT 的时候,锁定级别设置LockMode.UPGRADE_NOWAIT
当Hibernate在“可重复读”或者是“序列化”数据库隔离级别下读取数据的时候,锁定模式 自动设置为LockMode.READ。这种模式也可以通过用户显式指定进行设置。
LockMode.NONE 代表无需锁定。
String hql ="from A a where a.username=?";
uniqueResult(hql,"张三");
public Object uniqueResult(String hql, Object... args) {
Query q = getSession().createQuery(hql);
for (int i = 0; i < args.length; i++) {
q.setParameter(i, args[i]);
}
q.setMaxResults(1);
Object obj=q.uniqueResult();
return obj;
}
User user = session.get(User.class,userId);