findByExample是一个很便利的查询的方法,通过传入的实例,进行条件匹配生成查询语句。
但之前一直很少用这个方法,原因是之前发现不知道什么情况下查询结果跟自己想要生成的不同。还是学习方式不同吧,对于陌生的东西出现问题了就不管不用了,这样是不行了。现在又遇到了,却很快的发现问题所在了。
原因其实很简单,findByExample只为example中的
基本类型属性生效,如果example的属性中有bean的话(一般有外键时就会出现了)就会无法转成SQL查询条件。甚至很多时候会产生where (1=1)的条件,相信会令人很迷惑。
解决办法很简单吧,遇到这种情况可以直接使用SQL或条件查询(Criteria),更推荐使用Criteria。
下面是查询参考:
@Override
public AppsAccount findByUserAndApp(Users user, Apps app) {
final DetachedCriteria query = DetachedCriteria
.forClass(AppsAccount.class);
Criteria criteria = query.getExecutableCriteria(getSession());
criteria.add(Restrictions.eq("users", user));
criteria.add(Restrictions.eq("apps", app));
@SuppressWarnings("unchecked")
List<AppsAccount> list = criteria.list();
if (list != null && !list.isEmpty()) {
return list.get(0);
}
return null;
}
因为是跟spring整合,所以用getSession()方法传入session。
AppsAccount.class类
public class AppsAccount implements java.io.Serializable {
// Fields
/**
*
*/
private static final long serialVersionUID = 2255050572597512586L;
private String id;
private Users users;
private Apps apps;
private String account;
.....
分享到:
相关推荐
Eclipse 上使用 Hibernate Eclipse 上使用 Hibernate 是 Java 开发者常用的持久层解决方案。本文将指导您在 Eclipse 环境中使用 Hibernate,包括下载和安装 Hibernate、配置 Hibernate、生成实体类和 DAO 类、添加...
### hibernate 事务管理注意事项 在使用Hibernate框架进行数据库操作时,事务管理是确保数据一致性和安全性的重要环节。本文将围绕“hibernate 事务管理注意事项”这一主题展开讨论,通过对给定文件中的标题、描述...
Hibernate 使用参考文档 Hibernate 是一个流行的 Java持久层框架,它提供了一种对象关系映射(Object-Relational Mapping,ORM)机制,用于将 Java 对象与关系数据库之间建立映射关系。本文档旨在指导读者快速从 ...
### myEclipse 使用 Hibernate 图解知识点详解 #### 一、集成 Hibernate 类库到 MyEclipse 项目 在 MyEclipse 中使用 Hibernate 开发时,首先需要将 Hibernate 的类库加入到项目中。具体步骤如下: 1. **添加 ...
本文将探讨在使用Hibernate时可能遇到的问题,特别是关于数据源的配置。 首先,我们来理解什么是数据源。数据源是Java中用于存储和管理数据库连接的组件,它提供了一种池化连接的方式,可以提高系统资源的利用率,...
【hibernate Tools】是Java开发中用于简化Hibernate框架使用的工具集,它为Eclipse提供了对Hibernate项目的集成支持。在本文中,我们将详细介绍如何安装和使用hibernate Tools,以便在开发过程中更高效地处理...
在使用Hibernate时,还需要注意以下几点: - 映射文件:可以使用XML文件(hbm.xml)或注解方式来定义实体类与数据库表的映射。 - 第二级缓存:为了提高性能,可以配置Hibernate使用第二级缓存,如Ehcache。 - JPA...
下面是关于 Hibernate 的详细知识点: Hibernate 介绍 Hibernate 是一个开源的持久层框架,它提供了一个抽象层来访问关系数据库。它允许开发者使用面向对象编程语言来访问关系数据库,从而简化了数据库交互的过程...
在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者使用面向对象的方式处理数据库操作。为了简化开发过程,Hibernate提供了一款名为Hibernate Tools的插件,这款插件集成了多种功能,...
标题“hibernate与mybatis一起使用取长补短”暗示了在一个项目中同时采用这两种框架,旨在充分利用它们各自的优点,以提升项目的性能和灵活性。 Hibernate是一款强大的ORM框架,它提供了完整的对象模型支持,包括...
在本课程"使用Hibernate开发租房系统3"中,我们将深入探讨如何利用Hibernate这一强大的对象关系映射(ORM)框架来构建高效、灵活的租房管理应用。北大青鸟ACCP6.0 Y2 JAVA方向的课件与源代码相结合,为我们提供了一...
Hibernate_Tools_for_Eclipse插件的安装和使用 Hibernate_Tools_for_Eclipse插件是 Eclipse 中的一个插件,用于支持 Hibernate 开发。它提供了许多有用的功能,如Hibernate配置文件的创建、实体类的生成、SQL语句...
在本教程"使用Hibernate开发租房系统910"中,我们将深入探讨如何利用Hibernate来构建一个功能完备的租房系统。这个教程可能属于ACCP6.0+(北大青鸟的高级软件开发课程)的一部分,旨在帮助学员提升实际项目开发能力...
在这个“使用Hibernate完成影院售票系统”的项目中,我们将探讨如何利用Hibernate来构建一个完整的影院售票应用。这个项目可能是在北大青鸟的两年课程中的一个重要实践环节,旨在提升学员对数据库操作、对象关系映射...
**Hibernate Tools使用指南** 在Java开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。为了提升开发效率,Hibernate提供了一系列的工具,即Hibernate Tools,帮助开发者进行逆向...
Java使用Hibernate操作数据库是现代Java应用中常见的技术实践,...以上就是关于Java使用Hibernate操作数据库的基础知识,通过这些内容,开发者可以更好地理解如何在Java项目中利用Hibernate进行数据库的高效管理。
《使用Hibernate Shards对数据进行切分》 在大规模分布式系统中,数据库的扩展性问题一直是开发者关注的重点。Hibernate Shards是Hibernate框架的一个扩展,它提供了数据库分片(Sharding)的功能,帮助解决高并发...