突然发现hql的where条件中的字段可以写为实体的属性名称也可以写数据库中对应表的字段名,以前没遇到过,突然间遇到有点意外,所以就写出来,好让自己记住。
一个用户实体对应的用户表,他们的映射我采用JPA的标注方式:
@Entity
@Proxy(lazy = true)
@Table(name = "t_yh")
@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL)
@Transactional
public class TYh implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
// Fields
private Integer yhId; // PRIMARY
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "identifier")
@SequenceGenerator(name = "identifier", allocationSize = 1)
@Column(name = "yh_id", unique = true, nullable = false, insertable = true, updatable = true)
public Integer getYhId() {
return yhId;
}
}
属性yhId对应试数据库中的yh_id.
在做查询时如:from TYh model where yhId=12 和from TYh model where yh_id=12 ;他们查询出来的结果是一样。但是如果这样写就不行:from TYh model where model.yh_id=12 .
有了别名之后他按照的是TYh这个实体类中的属性去查询了,而实体类中没有yh_id字段。就会报如下错误:
could not resolve property: yh_id of: com.strong.module.tyh.jpa.TYh [ from com.strong.module.tyh.jpa.TYh model where model.yh_id=12]。
分享到:
相关推荐
Hibernate 多对多HQL语句写法
Hibernate框架]Hql语句in中带参数的写法
对应hql写法可以是,from a.aa.bb.cc.User,这一写法主要是区分有两个不同包下出现了相同的类名称才会这样指定他的全限定名称 本篇文章的示例代码下载地址 https://download.csdn.net/download/qq_29001539/122
个人认为东西小但很有用,必不可少的东西,大家可以共享一下
一些基础的hql语写法
hibernate+hql+大全,整理了常用的hql语句实例,能够更好的掌握hql语句的写法。
NSQL和HQL的简单操作
hibernate ORM的实例,包括一对一,一对多,多对一,多对多的各种实例。 还有一些HQL语句的写法
为什么很多应用中,自行设计开发类来描述各种业务查询条件才能传入DAO?为什么我们不能在数据访问层上花费更少的时间和精力? JPA1.0和早期的H框架,其思想是将关系型数据库抽象为对象池,这极大的限制了本来非常...
{1.8.3}条件运算符}{29}{subsection.1.8.3} {1.8.4}移位运算符}{30}{subsection.1.8.4} {1.9}流程控制}{31}{section.1.9} {1.9.1}\texttt {if\ldots esle\ldots }}{31}{subsection.1.9.1} {1.9.2}\texttt {...