hql在mysql中查询出错

问题描述

hql在mysql中查询出错

今天遇到一个非常奇怪的问题,mysql数据库,hibernate注解配置表,
from Wxyhdtb where zt=1 and wxyh.id=1 order by wxyh.id
测试发现在where条件中wxyh.id会出错,Unknown column 'wxyh.id' in 'where clause',但是只在order by wxyh.id却没有问题 ,请问这是什么情况?
注:以前用oracle 就不会出现这种情况

解决方案

Mysql 导入文件后查询出错

解决方案二:

from Wxyhdtb where zt=1 and wxyh.id=1 order by wxyh.id

HQL语句面向的是对象bean. 虽然看起来很想SQL,但其实是对象。 因此对于你的这条HQL语句。 Wxyhdtb应对应类,同时where 后的字段对应的应该是Wxyhdtb对象的属性。看你的HQL where条件,Wxyhdtb 应该 和 wxyh 对应的对想是有关联的。 wxyh应该对应另一个表的。

针对

from Wxyhdtb where zt=1 and wxyh.id=1 order by wxyh.id

这条HQL语句,你的实体bean可能如下结构

 @Entity
@Table(name = "tb_a")
class Wxyhdtb{
@Id
  Long id;
    Integer zt ;
     @OneToOne // 也有可能是 ManyToOne
  Wxyh wxyh;
}

@
Entity
@Table(name = "tb_b")
class Wxyh {
@Id
    Long id;
}

解决方案三:

是这样的,一对一映射,但不知道为什么会报错

时间: 2016-09-23
Tags: mysql, Hibernate, hql

hql在mysql中查询出错的相关文章

select-关于mysql中查询重复数据的疑问

问题描述 关于mysql中查询重复数据的疑问 我有一个表叫做sc. 现在要查询score中有相同分数的信息, 查询的sql语句是 select * from sc where score in (select score from sc group by score having count(score)>1); 我很好奇的是group by的执行顺序是比 having先执行啊, 按道理,执行了之后重复的score值是没有的,怎么还能再用having 来查出count(score)>1 的重复

mysql-JSP怎么获取在MySql中查询到的数据中的指定值?

问题描述 JSP怎么获取在MySql中查询到的数据中的指定值? 这是我的table结构,一共6列,主键是id,table名是user,现在想通过查找username来获取指定username的name值,并存入session中,用SELECT * FROM user where 语句可以获取一行值,如果我只要取name列的值,代码应该怎么写呢?比如我想取username为zeng的用户的name值,应当怎么写?之前遇到个问题卡了很久,提问求个例子之后大家都只说个大概思路,无奈只好把问题拆分开来问

php-PHP无法在MySQL中查询中文数据

问题描述 PHP无法在MySQL中查询中文数据 跪求大神来回答!我的PHP脚本已经实现了MySQL数据库的链接.但是发现在HTML页面上输入中文查询,显示的是数据库中没有这个信息. 但其实我的MySQL里面有这条中文数据的.网上说的设置utf8,gbkgb2312我都试过了,也没有用. 我的并不是说页面显示中文乱码,而是数据库中无法执行查询中文这一操作.希望大神能帮个忙! 解决方案 $inputData = iconv(""GB2312""UTF-8"&q

入门php在mysql中查询数据

问题描述 入门php在mysql中查询数据 数据库中有张表有主键pmcode还有其他属性,我现在想通过pmcode判断某个用户是否存在,存在的话将其信息取出,代码如下: //拆分发来的信息得到会员卡号 $arry=explode("+",$form_Content); $memberid =$arry[1]; //连接数据库 $link=mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_

MySQL中查询日志与慢查询日志的基本学习教程_Mysql

一.查询日志   查询日志记录MySQL中所有的query,通过"--log[=file_name]"来打开该功能.由于记录了所有的query,包括所有的select,体积比较大,开启后对性能也有比较大的影响,所以请大家慎用该功能.一般只用于跟踪某些特殊的sql性能问题才会短暂打开该功能.默认的查询日志文件名为:hostname.log.  ----默认情况下查看是否启用查询日志: [root@node4 mysql5.5]# service mysql start Starting

MySQL中查询的有关英文字母大小写问题的分析_Mysql

mysql数据库在做查询时候,有时候是英文字母大小写敏感的,有时候又不是的,主要是由mysql的字符校验规则的设置决定的,通常默认是不支持的大小写字母敏感的.  1. 什么是字符集和校验规则? 字符集是一套符号和编码.校对规则是在字符集内用于比较字符的一套规则.任何一个给定的字符集至少有一个校对规则,它可能有几个校对规则.要想列出一个字符集的校对规则,使用SHOW COLLATION语句. 校对规则一般有这些特征:     两个不同的字符集不能有相同的校对规则.     每个字符集有一个默认校对

用Distinct在MySQL中查询多条不重复记录值

在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来 过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值.其原因是distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,我只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说 ,无疑是会直接影响到效率的.所以我花了很多时间来研究这个问题,网上也查不到解决方案,期间把 朋友拉来帮忙,

用distinct在MySQL中查询多条不重复记录值[转]

在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但 往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值.其原因是distinct只能返回它的目标字段,而无法返回其它字段,这个问题让 我困扰了很久,用distinct不能解决的话,我只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的.所以我花 了很多时间来研究这个问题,网上也查不到解决方案,期间把朋友拉来帮忙,

使用distinct在mysql中查询多条不重复记录值的解决办法_Mysql

在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值.其原因是distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,我只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的.所以我花了很多时间来研究这个问题,网上也查不到解决方案,期间把容容拉来帮忙,结果是