问题内容: 我有两个实体。一个继承自另一个。 例: 当我在EntityManager上使用现有汽车ID调用find()时,如下所示: 我得到了一个代理对象,但是我需要访问CarEntity类的特殊方法,因为我想设置一些新参数。 有人可以帮我吗? 当然,这只是一个示例问题。更具体地说:在调用find之后,我正在检查返回对象的实例,如果它是“ CarEntity”,则我设置参数,否则,我什么也不做。除
问题内容: 我的JPA模型中有以下类(省略了getters,setters和无关字段): 我需要定义一个类,使得当从所述类生成DDL时,相应的表的主键被由密钥和。我尝试了以下方法: 但这会为表生成以下内容: 请注意,和都是可为空的,当我尝试将DDL加载到SQL Server时会导致以下错误 无法在表“ PRICE”中的可为空的列上定义PRIMARY KEY约束 我不明白为什么这些可以为空,因为在域
问题内容: 我已经使用JPA(实现hibernate)一段时间了,每次我需要创建实体时,我都会遇到与AccessType,不可变属性,equals / hashCode等有关的问题。 因此,我决定尝试找出每个问题的最佳常规做法,并写下来供个人使用。 但是,我不介意让任何人对此发表评论或告诉我我错了。 实体类 实现可序列化 原因: 规范要求您必须这样做,但是某些JPA提供程序没有强制执行此操作。 作
问题内容: 我想避免序列化(在JMS / AMF中),但仍使用JPA / Hibernate保留该字段。 是修改我的朋友?注释和修饰符是否相关? Java规范明确指出,系统服务不会将瞬态字段保存到持久性存储中。但是hibernate是系统服务吗?(我不这样认为) http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.h
问题内容: 有没有办法告诉Hibernate在使用to_char将列连接到另一个表或将NUMBER转换为VARCHAR时将其包装?我遇到的情况是,我的一个表包含一个类型为VARCHAR的通用键列,该列存储另一个表的ID(即Number)。当Hibernate执行它生成的SQL时,我收到一个SQL异常,该SQL使用’=’比较两列。 谢谢… PS:我知道这不是理想的选择,但是我坚持使用模式,因此必须对
问题内容: jpa和hibernate之间的异同是什么? 问题答案: JPA(Java持久性API)是持久性提供程序要实现的接口。Hibernate就是这样的JPA实现。
问题内容: 根据文档,hibernate3.6应该支持java.util.UUID类型。但是当我像这样映射时: 我得到以下异常: 我知道带有堆栈跟踪的问题不是很流行,但这是一个非常hibernate的问题,我一直无法在Google上找到任何东西:) 谢谢 问题答案: UUID是3.6中添加的基本类型。但是,默认情况下,它转换为JDBC Binary类型,这似乎导致mysql问题。您可以通过显式指定
问题内容: 对于JPA / Hibernate复合主键,@ IdClass或@EmbeddedId实现,哪个更好?为什么? 这是一个天真的问题。我决定使用@EmbeddedId(无论出于何种原因),我觉得我做错了选择。取消引用包含列属性的EmbeddedId是多余的,并且在编码时很容易出错。 还有其他理由支持和/或反对吗?是JPA(规范)的建议吗? 问题答案: 正如Pascal所写,这是答案的一部
问题内容: 在JPA中,设置列的长度到底有什么用? 我了解您可以使用注释基于实体对象生成数据库架构(DDL),但是在发生持久性时,length是否进行任何形式的检查或截断,还是仅用于架构创建? 我还意识到JPA可以放在各种实现之上,在这种情况下,我关心的实现是Hibernate。 问题答案: 持久性发生时,length是否进行任何形式的检查或截断,还是仅用于模式创建? 注释的属性用于指定: 列长。
问题内容: 假设我有一个包含200列的表格,其中大多数从未使用过。 我将SmallEntity映射到经常使用的10列。我在与其他实体的关联中使用它。它加载速度快,消耗很少的内存,让我很高兴。 但是有时我需要显示200列。我想在200列上映射BigEntity类。它没有绑定到其他实体,也没有关联。 问题:您有这样做的经验吗?您是否知道Hibernate可能会遇到的任何麻烦,例如在一级缓存,脏检查和实
问题内容: 我正在尝试使用@SqlResultSetMapping和@ConstructorResult将本机查询的结果映射到POJO。这是我的代码: 然后在我的DAO中: 我已经读到JPA 2.1仅支持此功能,但这就是我正在使用的功能。这是我的依赖项: 我发现了一些资源,其中包括:jpa2.1中的@ConstructorResult映射。但是我仍然没有运气。 我想念什么?为什么找不到SqlRes
问题内容: 我想在我的Java EE项目中使用spring数据存储库。我用: WildFly 10.0.0 Hibernate5.0.7 Spring Data JPA 1.10.6 CDI代替Spring DI 我创建了以下类和接口: 我的资料库 我的CDI配置 我的EJB Bean 我的persistence.xml: 如果我第一次调用testRepository方法(为此目的使用调度程序),
问题内容: 我有一个简单的jpa实体“ ApplicationForm”,其中有一对多列表: ApplicationForm中包含的变量Dictionary是仅带有问题文本的另一个普通实体。字典映射的相应数据库表为: 我想知道是否可以使用jpa或hibernate建立一个查询,以使用特定语言环境(例如“ it”)的Dictionary检索ApplicationForm实体。使用标准sql可以轻松完
问题内容: 我正在使用Spring + Hibernate+JPA,但遇到无法将实体持久保存到数据库的情况。我已经建立了一个带有@Transactional注释的服务类。它使用包含注入的EntityManager的DAO。当我在服务对象上调用函数时,我看到DAO正在进行大量的选择读取,但是由于我的DAO发出的合并和删除操作,没有更新/删除。当然,我的设置有问题,但是我看不到它。 persisten
问题内容: 我有一个测试用例,需要将100‘000个实体实例持久存储到数据库中。我当前使用的代码可以做到这一点,但是要花40秒才能将所有数据持久保存在数据库中。从大小约为15 MB的JSON文件中读取数据。 现在,在另一个项目之前,我已经在自定义存储库中实现了批量插入方法。但是,在那种情况下,我要保留许多顶级实体,而只有少数嵌套实体。 在我目前的情况下,我有5个实体,其中包含约30个实体的列表。其