摘要: Hibernate缓存通过将对象集中在缓存中来提高应用程序的性能。Hibernate中主要有两种类型的缓存:一级缓存和二级缓存。 一级缓存 Session对象保存第一级缓存数据,第一级缓存默认情况下启用。 第一级缓存数据将不可用于整个应用程序。这是因为应用程序可以使用很多会话(Session)对象。 阅读全文
posted @ 2018-08-23 10:50 borter 阅读(104) 评论(0) 推荐(0) 编辑
摘要: Hibernate标准(Criteria)查询语言(HCQL)用于根据具体条件获取记录。Criteria接口提供了应用标准的方法,例如检索薪水大于50000的表的所有记录。 HCQL的优势 HCQL提供了添加条件的方法,因此,java程序员可以很容易添加条件。 java程序员能够在查询中根据需要添加 阅读全文
posted @ 2018-08-23 10:47 borter 阅读(184) 评论(0) 推荐(1) 编辑
摘要: hibernate命名的查询是通过一些有意义的名称来使用查询的方式。就类似于使用别名一样。 Hibernate框架提供命名查询的概念,以便应用程序员不需要将查询分散到所有的java代码,进一步提高代码的可维护性。 在hibernate中定义命名查询有两种方法: 通过注释 通过映射文件 Hiberna 阅读全文
posted @ 2018-08-23 10:47 borter 阅读(336) 评论(0) 推荐(0) 编辑
摘要: Hibernate查询语言(HQL)与SQL(结构化查询语言)相同,但不依赖于数据库表。 我们在HQL中使用类名,而不是表名。 所以是数据库独立的查询语言。 HQL的优点 HQL有很多优点。 它们如下: 数据库独立 支持多态查询 易于Java程序员学习 查询接口 它是一个面向对象的Hibernate 阅读全文
posted @ 2018-08-23 10:46 borter 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 事务只是一个工作单位(单元)。 在这种情况下,如果一个步骤失败,则整个事务失败(称为原子性)。 ACID属性(原子性,一致性,隔离性和持久性)可以描述事务。 Hibernate中的事务接口 在hibernate框架中,我们有Transaction接口来定义工作单元。 它维护了事务实现(JTA,JDB 阅读全文
posted @ 2018-08-23 10:45 borter 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 正如我们在前面的例子中讨论过的,在hibernate中执行一对一映射有两种方法: 通过many-to-one元素 通过one-to-one元素 这里,我们将通过one-to-one元素进行一对一的映射。 在这种情况下,不会在主表中创建外键。 在这个例子中,一个员工只能有一个地址,一个地址只能属于一个 阅读全文
posted @ 2018-08-23 10:44 borter 阅读(2667) 评论(0) 推荐(0) 编辑
摘要: 在hibernate中我们可以通过两种方式来执行一对一映射: 通过many-to-one元素标签 通过one-to-one元素标签 在这里,我们将通过多对一的many-to-one元素进行一对一的映射。 在这种情况下,在主表中创建外键。 在这个例子中,一个员工只能有一个地址,一个地址只能属于一个员工 阅读全文
posted @ 2018-08-23 10:44 borter 阅读(1439) 评论(0) 推荐(0) 编辑
摘要: 在组件映射中,我们将依赖对象映射作为组件。 组件是存储为值而不是实体引用的对象。 如果从属对象没有主键,则要使用此方法。 它用于组合(HAS-A关系)的情况下,这就是为什么把它称为组件。 下面来看看看有HAS-A关系的类。 Hibernate组件映射示例 创建一个Java项目:componentma 阅读全文
posted @ 2018-08-23 10:43 borter 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 我们可以使用set,bag,map等来映射多对多关系。在这里,我们将使用map来进行多对多映射。 在这种情况下,将创建三个表。 多对多映射示例 我们需要创建以下文件来映射map元素。首先创建一个项目:ternaryobject,它们分别如下 - 项目:ternaryobject的目录结构如下图所示 阅读全文
posted @ 2018-08-23 10:42 borter 阅读(996) 评论(0) 推荐(0) 编辑
摘要: Hibernate允许我们将Map元素与RDBMS进行映射。 我们知道,List和Map是基于索引的集合。 在map的情况下,索引列作为键,元素列用作值。 使用xml文件在集合映射中映射Map的示例 现在,我们创建一个Java工程:ternarystring,项目的完整目录结构如下图所示 - 您需要 阅读全文
posted @ 2018-08-23 10:41 borter 阅读(569) 评论(0) 推荐(0) 编辑
摘要: 如果持久类具有Set对象,可以在映射文件中使用set元素映射Set集合。 set元素不需要索引元素。 List和Set之间的区别是: Set只存储唯一的值。 我们来看看我们如何在映射文件中实现集合: XML XML 集合映射中映射集合的示例 在这个例子中,我们将看到set的集合映射的完整示例。 这是 阅读全文
posted @ 2018-08-23 10:40 borter 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 如果持久化类设置了包含实体引用的对象,则需要使用一对多关联来映射集合(Set)元素。 我们可以通过任意一个Set集合来映射这个列表对象。 下面来看看看设置对象的持久化类。 在这种情况下,一个问题可以有很多答案,每个答案可能有自己的信息,这就是为什么使用set标签元素来表示一个答案(Answer类)集 阅读全文
posted @ 2018-08-23 10:40 borter 阅读(837) 评论(0) 推荐(0) 编辑
摘要: 如果持久化类具有包含实体引用的列表对象,则需要使用一对多关联来映射列表元素。 我们可以通过列表(list)或包(bag)来映射这个列表对象。 请注意,bag不是基于索引的,而list是基于索引的。 在这里,我们使用论坛的场景:论坛中一个问题有多个答案。 下面来看看看具有列表对象的持久化类。 在这种情 阅读全文
posted @ 2018-08-23 10:39 borter 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 如果持久类有List对象,我们可以通过列表或者bag元素在映射文件中映射。 这个包(bag)就像List一样,但它不需要索引元素。 在这里,我们使用论坛的场景: 论坛中一个问题有多个答案。 我们来看看如何在映射文件中实现包(bag): Java Java 在集合映射中映射包的示例 在这个例子中,我们 阅读全文
posted @ 2018-08-23 10:38 borter 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 如果持久化类具有包含实体引用的列表(List)对象,则需要使用一对多关联来映射列表元素。 在这里,我们使用论坛应用场景,在论坛中一个问题有多个答案。 在这种情况下,一个问题可以有多个答案,每个答案可能有自己的信息,这就是为什么在持久化类中使用列表(包含Answer类的引用)来表示一系列答案。 下面来 阅读全文
posted @ 2018-08-23 10:36 borter 阅读(1496) 评论(0) 推荐(0) 编辑
摘要: 可以在Hibernate中映射持久类的集合元素。 您需要从以下类型之一声明持久类中的集合类型: java.util.List java.util.Set java.util.SortedSet java.util.Map java.util.SortedMap java.util.Collectio 阅读全文
posted @ 2018-08-23 10:35 borter 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 如果持久化类具有List对象,我们可以通过映射文件中的类的<list>元素或注释来映射List。 在这里,我们正在使用论坛的场景,其中一个问题有多个答案。 在这里,我们使用论坛的场景,其中一个问题有多个答案。我们来看看如何在映射文件中实现列表(List): XML XML 注: List 和 Map 阅读全文
posted @ 2018-08-23 10:35 borter 阅读(1853) 评论(0) 推荐(0) 编辑
摘要: 在上一文章中,我们使用xml文件将继承层次映射到一个表。 在这里,我们将使用注释来执行同样的任务。需要使用@Inheritance(strategy = InheritanceType.SINGLE_TABLE),@DiscriminatorColumn和@DiscriminatorValue注释, 阅读全文
posted @ 2018-08-23 10:34 borter 阅读(712) 评论(0) 推荐(0) 编辑
摘要: 在每个子类一张表的情况下,表是根据持久类创建的,但是它们使用主键和外键来重新定义。 所以关系中不会有重复的列。 我们需要在子类中的使用@PrimaryKeyJoinColumn注释和在父类指定@Inheritance(strategy = InheritanceType.JOINED)。 下面来看看 阅读全文
posted @ 2018-08-23 10:33 borter 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 在每个子类一张表的情况下,子类映射表与主键和外键关系与父类映射表相关。 类的<joined-subclass>元素用于使用主键和外键关系将子类与父对象进行映射。 在这个例子中,我们将使用hb2ddl.auto属性自动生成表。 所以我们不需要手动在数据库中创建表。 下面来看看看我们要映射的类的层次结构 阅读全文
posted @ 2018-08-23 10:32 borter 阅读(228) 评论(0) 推荐(0) 编辑