关于hql语句的一些问题

1.student is not mapped问题:

在执行显示数据库数据的时候出错

大概提示说:

errors: s.entr_Id

student is not mapped

碰到这种情况一般是: hql的配置文件和数据库的数据弄混了

要知道 hql是写的是PO对象,不是table名

数据库里的studnet表反转后生成Student.hbm.xml和Student.java

Student.hbm.xml部分代码如下:

 <class name="com.hibernate.student" table="student">
        <id name="id" type="java.lang.String">
            <column name="id" />
            <generator class="native" />
        </id>
        <property name="entrId" type="java.lang.String">
            <column name="entr_Id" not-null="true" />
        </property>
        <property name="chName" type="java.lang.String">
            <column name="chName" length="20" />
        </property>

在ADO文件中。查询语句 hql="from student s where s.entr_Id=?;

是不正确的

应该改成hql="from Student s where s.entrId=?;

注意区分大小写。

2.hql语句的问题:要把hql语句与sql语句区分开来,

hql语句最明显的区别是语法比较严格,必须注意大小写。而sql则没有要求,另外,在执行的语句的时候一定要按照其格式要求:

如查询语句:String hql= "from Student where name=:name and pwd=:pwd" ;一定要按要求写,否则会执行不了。

另外,一些习惯问题。比如在执行sql语句的时先连接数据库,在执行hql是也一样(如:session=HibernateUtil.openSession();等)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值