下面用最简单的Role和User来展现一个简单的hibernate多对多查询:
User:
public class User implements Serializable{
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Role:
public class Role implements Serializable{
private Long id;
private String roleName;
private String descri;
public String getDescri() {
return descri;
}
public void setDescri(String descri) {
this.descri = descri;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
}
关系表:
public class UserRoleTemp implements Serializable{
private Long id;
private User user;
private Role role;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
查询:
String hql = "select ut.role from UserRoleTemp ut where ut.user.id = 2";
Session session = this.getSession();
Query q = session.createQuery(hql);
List<Role> list = q.list();
for(Role r :list){
System.out.println(r.getRoleName());
}
查询结果:
yang
gao
说明:中间省略了hbm映射及向表中添加信息的代码:
主要是想记录一下“select ut.role from UserRoleTemp ut where ut.user.id = 2”这条查询语句。
通过中间表的user的id,查询出了对应的role中的信息!由此可见,通过这种映射关系,查询起相应的信息来还是很方便的!
分享到:
相关推荐
本示例主要关注的是Hibernate中的多对多关联映射及其添加与查询方法。 多对多关联是数据库设计中的一种常见关系类型,指的是两个实体之间可以存在多个对应关系。例如,在学生与课程的关系中,一个学生可以选修多门...
在Java的持久化框架Hibernate中,多对多关联映射是一种常见的关系数据库模型映射方式,用于处理两个实体之间存在多个实例互相关联的情况。本文将深入探讨Hibernate如何实现多对多关联映射,并通过实际例子解析相关...
### Hibernate多表联合查询详解 #### 一、引言 在实际项目开发中,我们经常需要处理复杂的数据库查询,特别是涉及到多个表之间的关联查询。...希望本文能对你理解Hibernate的多表联合查询有所帮助。
hibernate 多表查询 hibernate 多表不同于一般的sql嵌套查询,嵌套查询是不支持的,所以必须要配置好才能实现多表!只要配置好了,还是特别好用的
如果查询结果包含多个字段,并且希望将这些字段封装成一个对象,则可以使用Hibernate的投影列表功能,或者手动创建一个新的类来存储查询结果。 ### 总结 本文主要介绍了Hibernate中的连表查询方法及其在实际开发中...
总结,"Hibernate 多表连接分页查询示范项目"是一个实用的示例,它展示了如何在实际应用中利用 Hibernate Criteria API 实现复杂查询和分页,对于学习和掌握 Hibernate 的高级特性和数据库操作技巧非常有帮助。...
总之,理解和掌握Hibernate的HQL查询多对多关系是JSP开发中的重要技能,它可以帮助你高效地处理复杂的数据查询,提高代码的可读性和可维护性。如果有任何疑问,欢迎进一步探讨或查阅相关文档以深化理解。
5. **操作关联**:在代码中,可以通过Hibernate的Session接口进行添加、删除、查询等操作,以维护多对多关系。 **数据库代码** 数据库代码部分可能包括创建相关表和中间表的SQL语句,以及填充数据的INSERT语句。...
本项目“hibernate一对多项目”旨在演示如何在JavaWeb应用中使用Hibernate处理一对多的关系映射。这里我们将深入探讨 Hibernate 的一对多关系、配置以及在实际项目中的应用。 首先,一对多关系在数据库中很常见,...
本教程将带你入门Hibernate的多对多实体映射,帮助你理解如何通过源码来实现这种复杂的关系映射。 一、Hibernate概述 Hibernate是一个对象关系映射(ORM)框架,它允许我们将Java对象(实体)与数据库表进行映射,...
同时,为了初始化数据,我们可能还需要一个HQL(Hibernate查询语言)脚本或者SQL脚本来创建表和插入初始数据。 总的来说,这个“hibernate 多对多 映射实例,学生 选课”项目涵盖了Hibernate的多对多关系映射、...
“Hibernate 一对多,多对一,一对多双向关联”是指在Java持久化框架Hibernate中,实体间常见的三种关联关系。在数据库设计中,这种关联关系是常见的,例如一个用户可以有多个订单(一对多),一个订单对应一个用户...
【hibernate查询详解】 Hibernate,作为一款强大的Java对象关系映射(ORM)框架,极大地简化了数据库操作。它允许开发者使用面向对象的方式来处理数据库,从而避免了传统的JDBC编码方式带来的复杂性。本篇文章将...
在Java的持久化框架中,Hibernate是一个...对于处理一对多、多对一等关联关系,Hibernate也提供了便捷的API,使得关联对象的存取变得简单易行。在实际项目中,熟练掌握这些高级查询技巧,将极大地提升开发质量和效率。
本文将深入探讨如何通过配置优化Hibernate的多表查询,以提高应用的性能。 1. **联合查询优化**: 在进行多表查询时,Hibernate默认可能会生成多个单表查询,这会导致大量的数据库往返,降低效率。通过配置`@Join...
例如,我们可以为一个实体类定义多个HQL或SQL查询,根据实际需要选择执行哪一个。 五、FREEMARKER解析 FREEMARKER是一款强大的模板引擎,常用于Web应用中的视图渲染。在Hibernate中,我们可以利用FREEMARKER生成...
Hibernate是Java领域的一个开源ORM框架,它简化了数据库操作,通过映射Java类到数据库表,可以将数据库操作转化为对Java对象的操作。Hibernate提供了一种灵活的查询语言——HQL(Hibernate Query Language),以及 ...
Hibernate分页查询小结
在Hibernate中,这种特性使得我们可以对一个通用的父类进行操作,而无需关注其具体的子类。 2. **实体类和继承层次结构**:在Hibernate中,实体类可以构成继承关系,通过`@Inheritance`注解来定义继承策略,如...
本文将深入探讨在使用Hibernate进行MySQL查询时的一些关键知识点,以帮助开发者更好地理解和应用这些技术。 首先,我们需要理解Hibernate的核心概念。Hibernate通过提供一个中间层,将Java对象与数据库表进行映射,...