草庐IT

Hibernate

全部标签

java - Criteria.DISTINCT_ROOT_ENTITY 不会阻止重复的对象

我有以下dao方法:@OverridepublicListfindAll(){Sessionsession=sessionFactory.getCurrentSession();Criteriacriteria=session.createCriteria(AdminRole.class);criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);returncriteria.list();}实际上我想从数据库中检索所有条目。有时我会看到重复项。当我添加具有AdminRole的用户时会发生这种情况。我已经读到,当我使用EA

java - 如何国际化 Hibernate 实体

我正在尝试为Java实体添加国际化(多语言)支持。在向每个新字段添加翻译时,我愿意接受尽可能少的样板代码的任何选项。我不限于JPA,也可以使用hibernate注释。在最坏的情况下,纯sql也适用。可能有一些我还没有找到的现成库。应该没有必要遵循我下面描述的想法。理想情况下,我需要数据库看起来像这样:i18n+------+--------+------+|id|locale|text|+------+--------+------+|1|en|foo|+------+--------+------+|1|de|bar|+------+--------+------+|2|en|foo

java - Hibernate:只需保存一个带有@EmbeddedId 的实体作为主键

我想学习hibernate基础知识,但不明白为什么我的应用程序在使用复合主键的@EmbeddedIdannontations添加到我的表中时不起作用:代表PK的类:@EmbeddablepublicclassOHLCVKeyimplementsSerializable{privatestaticfinallongserialVersionUID=-3996067621138883817L;@Column(name="Symbol")protectedStringsymbol;@Column(name="Currency")protectedStringcurrency;@Column(

java - 使用 JUnit4 进行测试时,Spring @transactional 不会启动事务

我有以下配置。org.hibernate.dialect.SQLServerDialecttruetrueorg.hibernate.dialect.SQLServerDialectfalsefalsetruetrue然后,当我运行具有插入语句的测试时,它们会产生这样的错误消息:javax.persistence.TransactionRequiredException:Executinganupdate/deletequeryatorg.hibernate.ejb.QueryImpl.executeUpdate(QueryImpl.java:47)经过深思熟虑,我尝试了这个:@Run

java - 与 Bean Validation API 结合使用时,Hibernate 不遵循 JPA 规范?

这个问题是这个问题的后续问题:JPAConstraintViolationvsRollback我做了一些关于JPA和验证API(JSR-303)组合的测试。我在JPAspecifications中找到了以下内容(第101-102页):Bydefault,thedefaultBeanValidationgroup(thegroupDefault)willbevalidateduponthepre-persistandpre-updatelifecyclevalidationevents...IfthesetofConstraintViolationobjectsreturnedbythe

java - Hibernate Criteria 查询在生成的 SQL 中以错误的顺序列出表

我有一个使用多个连接的Criteria查询,生成的SQL乱序列出了表,因此ON子句引用了一个尚未声明的表。为了重现该问题,我创建了一个包含三个表的小型数据模型:Bill、Event和一个联结表BillEvent(我在问题末尾列出了一个带有实体定义的可运行JUnit测试)。以下Criteria查询因语法错误而失败,因为event1是在引用后声明的。如何重写此查询,以便以正确的顺序声明表?//GetthemostrecentBillEventforabillfinalCriteriacriteria=session.createCriteria(BillEvent.class,"be1")

java - 使用 Hibernate Criteria 查询 ManyToMany 关系

我不确定如何描述这个问题,所以我认为一个例子是提出问题的最佳方式:我有两个具有多对多关系的表:DriversLicenceLicenceClassLicenceClass是“汽车”、“摩托车”和“中型刚性”之类的东西。如何使用HibernateCriteria找到同时具有“Car”和“Motorbike”LicenceClasses的所有许可证?2008年12月11日更新我发现这可以通过使用自定义ResultTransformer轻松实现。然而,问题是结果转换器只在查询返回结果后才被应用,它实际上并没有成为SQL的一部分。所以我想我现在的问题是“你能做我最初在SQL中描述的事情吗-是否

java - JPA 不生成 "on delete set null"FK 限制

我有两个带有JPA注释的相关类。警报和状态。一个警报可以有一个状态。我需要的是能够删除一个状态并将空值“传播”到处于已删除状态的警报。也就是说,我需要将外键定义为“ondeletesetnull”。@EntitypublicclassAlarm{@Id@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="sequence")@SequenceGenerator(name="sequence",sequenceName="alarm_pk_seq")privateIntegerid;@OneToOne(cascade=Ca

java - Hibernate中embedded member对成员的唯一约束

是否可以在Hibernate中为嵌入式类的成员定义唯一约束?我需要确保Nested::i1和Nested::i2作为一对(组合)是唯一的@Entity@Table(uniqueConstrains=???)publicclassWidget{@Idprivateintid;@EmbeddedNestednested;}@EmbeddablepublicclassNested{privateinti1;privateinti2;} 最佳答案 可以通过使用:@Entity@Table(uniqueConstraints={@Unique

java - 与java8兼容的最低 hibernate 版本

我花了很长时间试图找出支持在java8JRE上运行的Hibernate的最低版本,其中用户代码将使用java8功能。我找到了thisbug,但它谈到了在hibernate中使用java8特性,它计划用于hibernate5.2,并且肯定hibernate4.3.1已经支持java8,因为Wildfly发布它并声称完全支持java8。我试图找到inthehibernatebugtracker与java8相关的错误,但同样都是“太新”。最后,我在Hibernate发行说明中搜索了.0版本,但再次没有成功:发行说明似乎只描述了自上一个RC或beta版本以来的变化...我尝试跟踪所有RC和be