突然发现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 是一个流行的 Java 持久层框架,它提供了强大的对象关系映射(ORM)功能,使得开发者可以方便地与数据库交互。但是,在使用 Hibernate 时,我们经常会遇到多对多关系的...
Hibernate框架Hql语句in中带参数的写法 Hibernate框架中,在使用HQL语句时,需要传递参数,而在HQL语句中使用in关键字时,需要特别注意参数的传递方式。在本文中,我们将讨论如何在HQL语句中使用in关键字带参数的...
HQL(Hibernate Query Language)是Hibernate框架提供的一种查询语言,它支持面向对象的语法结构,并且能够很好地与Java对象模型进行映射。通过HQL,开发者可以更加灵活地操作数据库中的数据,而无需直接编写SQL语句...
HQL(Hibernate Query Language)是 Hibernate 中的一种强大的查询语言,它看起来很像 SQL,但是不要被语法结构上的相似所迷惑,HQL 是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态和关联之类的...
在 HQL 中,除了 Java 类与属性的名称外,查询语句对大小写并不敏感。这意味着 SELECT、SeLeCT 和 sELEct 都是相同的,但是 org.hibernate.eg.FOO 并不等价于 org.hibernate.eg.Foo, foo.barSet 也不等价于 foo....
- 封装:DAO类应封装具体的SQL查询和HQL(Hibernate Query Language)语句,避免在业务层暴露这些细节。 - 单一职责:每个DAO类应只负责一种类型的数据操作,如用户DAO只处理用户相关的操作。 - 可复用:设计通用的...
在Hibernate框架中,进行数据库操作时,开发者可以选择使用两种不同的查询语言:NSQL(Native SQL)和HQL(Hibernate Query Language)。这两种查询方式各有优势,在不同的场景下使用可以达到最佳的效果。 ##### 一...
- **3.2.2 条件查询** - 使用WHERE子句添加过滤条件。 - **3.2.3 新增** - 编写INSERT语句来插入新的记录。 - **3.2.4 修改** - 使用UPDATE语句来修改现有的记录。 - **3.2.5 删除** - 通过DELETE语句删除...
7. **HQL(Hibernate Query Language)相关配置**:Hibernate提供了自己的查询语言,与SQL类似但更面向对象,用于检索和操作数据。 在配置文件中,还可以添加连接池参数,如`hibernate.c3p0.*`,来优化数据库连接...
然而,Hibernate的HQL(Hibernate Query Language)或Criteria API并不直接支持复杂的子查询或联接查询,特别是涉及到多表联合查询的复杂子查询,如在示例中所示。 在给出的日志中,可以看到一个嵌套的子查询,尝试...
本篇将深入讲解在Hibernate中常用的查询语句,包括HQL(Hibernate Query Language)和QBC(Query By Criteria)两种方式。 1. HQL(Hibernate Query Language)是面向对象的查询语言,它允许开发者以类和属性的名字...
HQL(Hibernate Query Language)是一种面向对象的查询语言,由Hibernate框架提供。虽然它的语法结构与SQL类似,但HQL是专为面向对象查询设计的,能够很好地处理继承、多态性和关联等面向对象的概念。 #### 二、HQL...
HQL是Hibernate特有的查询语言,类似SQL,但操作的是对象而非表,支持更丰富的查询功能,如关联查询、分页、排序等。 三、数据映射类型 3.1 映射类型的作用 映射类型用于将Java对象的属性与数据库表的列对应,实现...
Hibernate查询语言(HQL)是面向对象的查询语言,类似于SQL,但操作的是对象,而非表和列。 **三、数据映射类型** 3.1 映射类型的作用 映射类型定义了Java对象属性与数据库字段之间的对应关系,确保数据正确存储和...
Hibernate基于POJO(Plain Old Java Object)设计,采用元数据来描述对象和数据库表的关系,实现了对象的持久化,同时引入了查询语言HQL和Criteria API,实现了数据库操作的面向对象化。 **二、Hibernate的基本使用...
Hibernate提供了查询语言HQL,以及Criteria API,使得数据库查询更为便捷。此外,它的缓存机制能提高数据访问效率。 在这个SSH项目实例中,"templet"可能包含了一系列模板文件,如Struts的配置文件(struts.xml)、...
Hibernate支持多种数据库,具备强大的查询功能,包括HQL(Hibernate Query Language)和Criteria API。 Spring框架是Java企业级应用的核心框架,它提供了依赖注入(DI)和面向切面编程(AOP)等特性,简化了应用的...
6. **查询语言(HQL)**: Hibernate 查询语言(HQL)是 Hibernate 提供的面向对象的查询语言,类似于 SQL,但操作对象而非表。 **二、Hibernate 工作流程** 1. **初始化 Hibernate**: 加载配置文件,创建 ...