Tag: hibernate

HQL或Java持久性查询语言中的IN子句

我有以下参数化的JPA或Hibernate查询: SELECT entity FROM Entity entity WHERE name IN (?) 我想要传递参数作为ArrayList <String>,这可能吗? hibernate电stream告诉我,那 java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String 这可能吗? 解答 :作为参数的集合只能使用像“ :name ”这样的命名参数,而不能使用像“ ? ”这样的JDBC风格参数。

@OneToMany和@ElementCollection之间的区别?

使用@OneToMany和@ElementCollection注释之间有什么区别,因为两者都工作在一对多的关系?

在Spring MVC中使用ScrollableResults-backed Stream作为返回types时遇到困难

重要提示:这已被作为4.1.2的目标修复版本的Spring问题接受。 我的目标是在从Hibernate的ScrollableResults生成HTTP响应时实现O(1)空间复杂性。 我想保留一个MessageConverter分派的标准机制来处理从@Controller返回的对象。 我已经设置了以下内容: MappingJackson2HttpMessageConverter了一个处理Java 8 Stream的JsonSerializer ; ScrollableResultSpliterator需要将ScrollableResults封装到Stream ; OpenSessionInViewInterceptor需要保持Hibernate会话在MessageConverter打开; 设置hibernate.connection.release_mode为ON_CLOSE ; 确保JDBC连接具有必需的ResultSet可保存性: con.setHoldability(ResultSet.HOLD_CURSORS_OVER_COMMIT) 。 另外,我需要一个支持这种可保存性的数据库。 PostgreSQL是这样一个数据库,我没有这个问题。 我遇到的最后一个绊脚石是HibernateTransactionManager对事务提交使用的策略:除非底层会话是“Hibernate-managed”,否则它将disconnect() ,closures我的游标以及所有其他事物。 这种政策在一些特殊情况下是有用的,特别是“对话范围内的会议”,这远远不符合我的要求。 我设法解决了这个问题:我不得不用一个方法覆盖违规的方法,除了删除的disconnect()调用之外,它实际上是一个原始的复制粘贴,但是它必须通过reflection来访问private API。 public class NoDisconnectHibernateTransactionManager extends HibernateTransactionManager { private static final Logger logger = LoggerFactory.getLogger(NoDisconnectHibernateTransactionManager.class); public NoDisconnectHibernateTransactionManager(SessionFactory sf) { super(sf); } @Override protected void doCleanupAfterCompletion(Object transaction) { final JdbcTransactionObjectSupport txObject = (JdbcTransactionObjectSupport) transaction; final […]

JPA多个embedded式字段

JPA实体类可能包含两个embedded( @Embedded )字段吗? 一个例子是: @Entity public class Person { @Embedded public Address home; @Embedded public Address work; } public class Address { public String street; … } 在这种情况下,一个Person可以包含两个Address实例 – 家庭和工作。 我使用Hibernate的实现JPA。 当我使用Hibernate Tools生成模式时,它只embedded一个Address 。 我想要的是两个embedded式Address实例,每个实例的列名都有区别或者前缀有一些前缀(比如home和work)。 我知道@AttributeOverrides ,但这需要每个属性被单独覆盖。 如果embedded对象( Address )变大,因为每列都需要被单独覆盖,这会变得很麻烦。

Hibernate,iBatis,Java EE或其他Java ORM工具

我们正在规划一个大型企业应用程序。 在经历了J2EE的痛苦之后,我们将重点放在评估hibernate上。 它看起来像新的Java EE API更简单。 我还读了一些关于Hibernate和iBatis的好消息。 我们的团队对于任何框架都没有什么经验。 有5个主要的比较点我想确定 学习曲线/易用性 生产率 可维护性/稳定性 性能/可扩展性 易于排除故障 如果您要pipe理一个具有J2EE经验的开发人员团队,您将使用哪种ORM工具,为什么?

在Spring数据jpa中save和saveAndFlush之间的区别

我正在尝试通过JpaRepositorytesting一些CRUD操作来学习Spring数据JPA。 我遇到了两个方法save和saveAndFlush 。 我不明白这两者之间的区别。 在调用save也我的变化被保存到数据库,所以saveAndFlush的使用是saveAndFlush 。

hibernate:LazyInitializationException:无法初始化代理

这是让我困惑的一个。 我试图实现一个基本的Hibernate DAO结构,但是有一个问题。 这是基本的代码: int startingCount = sfdao.count(); sfdao.create( sf ); SecurityFiling sf2 = sfdao.read( sf.getId() ); sfdao.delete( sf ); int endingCount = sfdao.count(); assertTrue( startingCount == endingCount ); assertTrue( sf.getId().longValue() == sf2.getId().longValue() ); assertTrue( sf.getSfSubmissionType().equals( sf2.getSfSubmissionType() ) ); assertTrue( sf.getSfTransactionNumber().equals( sf2.getSfTransactionNumber() ) ); 它在第三个assertTrue失败,它试图将sf中的值与sf2中的相应值进行比较。 这是一个例外: org.hibernate.LazyInitializationException: could not initialize proxy – no Session at […]

在(…)查询中编写HQL的正确方法

假设我想写下面的HQL查询: FROM Cat c WHERE c.id IN (1,2,3) 什么是写这个参数化查询的正确方法,例如 FROM Cat c WHERE c.id IN (?)

configurationhibernate(使用JPA)来存储布尔types的Y / N而不是0/1

我可以设置JPA / hibernate作为Y/N持久Booleantypes吗? 在数据库中(该列定义为varchar2(1) ,当前存储为0/1 ,数据库为Oracle。

JPA中的多个唯一约束

有没有一种方法来指定使用JPA,应该有不同的列集上的多个唯一约束? @Entity @Table(name="person", uniqueConstraints=@UniqueConstraint(columnNames={"code", "uid"})) public class Person { // Unique on code and uid public String code; public String uid; // Unique on username public String username; public String name; public String email; } 我已经看到一个冬眠特定的注释,但我试图避免供应商的具体解决scheme,因为我们仍然决定hibernate和数据核心之间。