初学者使用hibernate注意的小问题

废话不多说,直接来干货

     1.org.hibernate.hql.ast.QuerySyntaxException: user is not mapped [from user where username = :username and pwd = :password]
    at org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:180)
    at org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:111)

。。。。。。

     at dao.UserDao.login(UserDao.java:58)
    at action.UserAction.login(UserAction.java:31)

值是部分的截图,他说在我的dao层出现的错误,源代码

session  =  CreateSession.getSession();		
		User user2 = null;
		String hql ="from user where username = :username and pwd = :password";
		try {
			transaction = session.beginTransaction();
			Query query = session.createQuery(hql);
			query.setParameter("username", user.getUserName());
			query.setParameter("password", user.getPassword());
			user2 = (User) query.uniqueResult();
			transaction.commit();
			
		} catch (Exception e) {
			// TODO: handle exception
			if(transaction!=null)
				transaction.rollback();
			e.printStackTrace();
		}finally {
			session.close();
		}

提交hql语句出现错误,再根据错误分析应该是user的问题,其实在hql语句里面,类数据库里映射着表,这也是hibernate的特性,只要我们把user改为实体类名就行,不是数据库表名,主要是习惯实体类会大写字母,而数据库表不大写,是一个很重要的点。

总结:hql语句和sql语句不通,hql里面的class对应数据库的table

2.数据库关键字的问题

有的时候我们创建了数据库,逻辑正确,但是却或有SQLException出现,某些属性没有默认值,这时候你可以把你的语句变成sql语句在数据库上运行一下,是否包含某些关键字

本人也是初学者,只是遇到问题想要总结一下,有什么问题还请多多赐教!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值