.unexpected token: null near line 1, column 57在hibernate查找出现的错误

还在做服务的查询部分,对象服务的添加部分可以添加了(生成id的算法还没有加进去)。

查询中容易出现的错误
1.unexpected token: null near line 1, column 57 [from springexample.hibernate.Customer c where c.userId =]
2.could not execute query这个错误还算好,知道是不能执行,会让人想到格式问题
大部分属于HQL语句的格式问题。此类问题会报各种错误。如上几种
还有一些属于添加记录时候的约束问题。因为一些表格存在关联关系。在参考例程的配置文件中,一对多和多对一的关系还用了级联。
也就等于再添加一个customer记录的时候就会同时添加account记录。所以再添加account记录就会报错误了。我的程序也是这问题。
line 1:100: unexpected token: 996
       unexpected token: 996 near line 1, column 100 [SELECT fh FROM com.ary.dbpojo.Sfhxxb fh WHERE fh.id.zzh=0300060755645012
        AND fh.id.zh=0000501200000996]

   这个异常发生在使用 EJB 使用SQL语句的时候
从这个异常可以看出 com.ary.dbpojo.Sfhxxb 是一个实体Bean
   整个语句看上去没有问题.. 可就是在执行查找过程中 抛了这个异常
   解决方法:
       1. 空格什么的 不要用全角
       2. SELECT, FROM, WHERE, AND 等这些关键字要写对
       3. 还要注意 在EJB中 这是一条面向对象的SQL语句 实体名称, 别名, 实体中属性的大小写 都是要区分的只有关键字(SELECT, FROM, WHERE, AND 等)不用区分
       4. 字符串一定要打单引号 也就是说 SELECT fh FROM Sfhxxb fh WHERE fh.id.zzh='0300060755645012' AND fh.id.zh='0000501200000996'
        红色部分是一开始没有打单引号的

   这次异常问题就出现在第四条 找了我一整天 - - 错误低级 网上没找到 所以我还是自己记录下来吧..


   函数调用一旦被放在引号里也被当做一个字符串来处理了。
   例如System.out.println("customer.getFirstName()");会直接打印出customer.getFirstName()
unexpected token: null near line 1, column 61 [from springexample.hibernate.Customer c where c.firstName = ]

查询操作的时候如果where条件中的是给定值还没问题,如果这个给定值的位置要通过对象获取还有点问题。
普通的getHibernateTemplate中的find好像不能解决。又不太清除,是否getHibernateTemplate中的语句就合hql一样??


你可能感兴趣的:(null,配置文件,account,UNEXPECTED,customer)