草庐IT

Hibernate

全部标签

java - 在 DAO 方法中访问延迟加载的集合时出现 NullPointerException

在应用程序中运行多个线程时,我遇到了Spring和Hibernate的一个奇怪问题。我正在使用spring3.2.0.RELEASE和hibernate4.1.12.Final。问题是对于某些对象,当它们从数据库中检索时,检索成功,但所有映射的集合都没有被设置。这是我的repo示例:@Repository("fooRepository")publicclassFooRepository{privatestaticfinalLoggerlog=Logger.getLogger(FooRepository.class);@AutowiredprivateSessionFactorysess

java - 如何在 Hibernate 上从 JPA 手动调用 create-drop?

我需要这个来进行集成测试。我的环境是JBoss7,Hibernate4上带有JPA的EJB3,H2内存数据库和测试由Arquillian运行。我希望能够删除数据库并再次创建它,所有表都基于persistence.xml和实体。我知道我可以在应用程序开始时指定:但我需要在第一次放置和创建发生后通过代码手动执行此操作。这可能吗?什么是最简单的方法? 最佳答案 您可以在Hibernate中以编程方式执行此操作。config=newConfiguration();config.setProperty(org.hibernate.cfg.En

java - 乐观锁的重试机制(spring data + JPA)

我们决定在我们的Web应用程序中使用乐观锁定以提高并发性,而不使用悲观锁定。我们现在正在寻找重试解决方案。我们希望对当前代码库的影响尽可能小。我们在网上看到的一种解决方案是使用带有注释的重试拦截器将方法标记为可重试。问题是我们想注释带有@Transactional注释的方法,但拦截器由于某种原因无法重试它们。(拦截器完美重试非事务方法。)所以:1)是否有任何对我们的代码影响最小的重试替代方案?2)是否有该解决方案的文档\教程?3)是否可以重试@Transactional注释的方法?干杯! 最佳答案 广告3.您可以使用SpringRe

java - Hibernate 什么时候打印统计信息?

我最近将Hibernate集成到我的Web应用程序中,并试图查看正在发生的数据库调用的性能影响/频率。启用show_sql和generate_statistics后,当我运行该应用程序时,我会看到hibernate运行的sql查询以及hibernate统计信息。例如:08:04:53.724[http-apr-8080-exec-1]INFOo.h.e.i.StatisticalLoggingSessionEventListener-SessionMetrics{85648nanosecondsspentacquiring1JDBCconnections;0nanosecondsspe

java - JPA entityManager.merge 将 LocalDateTime 转换为 SQLServer 2012 DATETIME2

我有一个以DateTime列作为主键的表:USE[idatest]GOCREATETABLE[dbo].[DatesTbl]([creationDate][datetime]NOTNULLCONSTRAINT[PK_DatesTbl]PRIMARYKEYCLUSTERED([creationDate]ASC))GO当我执行entityManager.merge时,我得到重复,PK违规,因为datetime为milisec保留3位数字,但hibernet将其转换为datetime2,它为milisec保留7位数字。在java代码中,我使用LocaDatetime,它包含10位毫秒数。我已

java - JPA + Hibernate + 自动提交

有人知道为什么我在JPA配置文件中关闭自动提交时会收到此警告吗?使用此设置:生成此警告:2009-08-0409:54:10,621[main]WARNorg.hibernate.ejb.Ejb3Configuration-hibernate.connection.autocommit=falsebreaktheEJB3specification这会如何破坏EJB3规范? 最佳答案 来自EJB3.0规范的第13.3.4节:Theenterprisebean’sbusinessmethods,messagelistenermethod

java - 命名查询未知 - Annotations & Hibernate

我收到以下异常:org.springframework.orm.hibernate3.HibernateSystemException:Namedquerynotknown:实体类头:@Entity@NamedNativeQuery(callable=true,name="_Foo_SP",query="call_Foo()",readOnly=true,resultClass=Foo.class)publicclassFoo{//...propertiesomittedforbrevity}在hibernate.cfg.xml中:在测试类中:privatestaticHibernat

java - 如何强制初始化 Hibernate JPA 代理以在 JSON 调用中使用它

我有一个Spring3+JPA2.0应用程序。在我的@Controller中,我需要一个初始化对象,但我有代理,我需要能够以编程方式初始化它。我需要类似于org.hibernate.Hibernate.initialize(Object)的功能。谁能帮忙。该对象用于AJAX操作。如果属性是代理,我不能将它作为JSON发送 最佳答案 据我所知,没有JPA选项。你应该使用Hibernate.initialize(..)。事实上,当我查看hibernate实现时,惰性集合似乎在许多情况下都被初始化,这出乎人们的意料。像entityMana

java - 如何选择合适的spring、struts和hibernate版本,有什么区别?

我想选择最新的框架来集成spring、struts和hibernate,但是好像版本太多了,而且它们的api也不一样,所以我很困惑如何选择合适的版本来集成他们?它们之间有什么区别?例如,我可以有以下集成:Spring框架3.0支柱2.0hibernate3.2由于我是这些框架的新手,请为我指明正确的方向,让我知道如何选择合适的版本来处理?提前致谢! 最佳答案 以下是我希望它对其他人有所帮助的内容(首先是我如何在Netbeans中进行设置,最后是一般方法的pom)。请注意,当我说添加某个jar时,我的意思是在Netbeans中:右键单

java - 将实体移动到外部 jar 包后未映射的实体

在我的Java/Seam/JbossAS应用程序中,我决定将我的模型类(hibernate实体)外部化并将它们移动到另一个项目中。该项目生成model.jar,然后由主应用程序使用。model.jar依赖由Ivy解决。使用Ant构建主应用程序没有问题。然后我手动将model.jar复制到“mainapp.ear/lib”目录中。之后我部署了该应用程序并且没有任何问题(尽管我注意到没有关于找到的映射的日志信息)。但是当我想登录时,我得到了异常:javax.el.ELException:javax.ejb.EJBTransactionRolledbackException:org.hibe