草庐IT

hibernate-entitymanager

全部标签

java - 使用 GROUP BY 和 RETURN ENTITY LIST 的 Hibernate 标准

我正在尝试在我的条件中使用GROUPBY。我需要这样做:SELECTbFROMBookbGROUPBYvolumeCode;我有以下代码:Criteriac=s.createCriteria(Book.class);c.setProjection(Projections.projectionList().add(Projections.groupProperty("volumeCode")));Listresult=c.list();但此条件仅返回volumeCode(字符串列表)。我需要获取Book的列表。所以我尝试使用变形金刚:Criteriac=s.createCriteria(

java - 错误 : ORA-02289: sequence does not exist - org. hibernate.exception.SQLGrammarException:无法提取 ResultSet

我正在为员工表创建一个基本的hibernate应用程序,我在ManageEmployee类的帮助下添加、更新、删除和显示记录。实际上,ManageEmployee是我的测试类,我正在使用Employee.java和Employee.hbm.xml文件来执行上述操作。详细信息:数据库:Oracle11ghibernate版本:hibernate-release-4.3.8.FinalJava版本:Java1.8员工表详细信息:USER_IDNUMBER(15,0)否11FIRST_NAMEVARCHAR2(20BYTE)是2LAST_NAMEVARCHAR2(20BYTE)是3薪水数字(

java - (N)Hibernate "session-per-application"被认为是特定用例的邪恶?

好的,每个人都知道不鼓励使用(N)Hibernate的全局session每个应用程序。但是我有一个非常具体的、显然是非标准的用例,它似乎是理想的解决方案。总而言之,我的(服务器)应用程序的所有持久数据基本上都在内存中,并且从不查询数据库以进行正常操作。首先使用数据库的唯一原因是数据在进程的生命周期内存活。我只想在应用程序启动时查询数据库以将所有内容提取到内存中。实际上,该数据库只有大约5-10MB。现在的问题是,如果我遵循session必须是短暂的建议,我必须为每个业务交易合并()我的所有数据,或者以某种方式手动跟踪所有更改,而不是利用NHibernate的自动更改跟踪。这使得持久性很

java - 多对多关系的属性 (Hibernate)

我有实体类A和C。它们正在映射表tblA和tblC,它们之间存在多对多关系,tblB在它们之间进行映射。tblB包含A_ID、C_ID和SetDate,最后一个是设置日期,因此是关系的属性。我的问题是,我如何最好地映射到这个属性中?目前它们未映射,如下所示:答:@ManyToMany(targetEntity=C.class,cascade={CascadeType.PERSIST,CascadeType.MERGE})@JoinTable(name="tblB",joinColumns=@JoinColumn(name="A_ID"),inverseJoinColumns=@Join

java - 我是否应该经常调用 EntityManager.clear() 以避免内存泄漏?

我是JPA/OpenJPA的新手,我注意到如果我在持久化实体后不调用EntityManager.clear(),我会得到一个OutOfMemoryError(我不断在循环中添加新实体)。我不确定这是预期的行为还是只是OpenJPA1.2.1故障。那么,我是否需要自己明确分离实体?如果我不是,这仍然是一个好习惯吗? 最佳答案 我对JPA没有太多经验。不过这很有用-在JPA中,您必须:-为每个事务创建一个新的EntityManager。-在每个事务后调用clear()以清除持久性上下文。 关

java - 处理 hibernate UnsupportedOperationException : Can't write to a readonly object

我需要设置哪些配置参数或session首选项来解决此问题?无法写入只读对象?以下是更多信息的堆栈跟踪:Causedby:java.lang.UnsupportedOperationException:Can'twritetoareadonlyobjectatorg.hibernate.cache.ReadOnlyCache.lock(ReadOnlyCache.java:43)atorg.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:85)atorg.hibernate.engine.Action

java - Hibernate:单表中的父/子关系

我几乎看不到任何关于以下与Hibernate相关的问题的指示。这与使用具有父子关系的单个数据库表实现继承有关与自身的关系。例如:CREATETABLEEmployee(empIdBIGINTNOTNULLAUTO_INCREMENT,empNameVARCHAR(100)NOTNULL,managerIdBIGINT,CONSTRAINTpk_employeePRIMARYKEY(empId))此处,managerId列可能为空,或者可能指向Employee表的另一行。业务规则要求员工了解他所有的下属,并让他了解他/她的经理。业务规则还允许行具有空managerId(组织的CEO没有经

java - getCurrentSession 在网络中 hibernate

我正在使用hibernate和jsp/servlet编写一个基于Web的应用程序。我已经阅读了sessionFactory.getCurrentSession和sessionFactory.openSession方法。我知道它们之间的基本区别(使用getCurrentSession您不必关闭连接,当您提交事务时,您的session将自动关闭)。根据我的理解,我们应该选择getCurrentSession并通过session-per-request来完成。让我们考虑以下场景:方法A调用getCurrentSession并获取当前session在方法A中,使用步骤1中的session启动事

java - Hibernate 实体 Autowiring

请问我怎样才能很好地为Hibernate实体启用SpringAutowiring?假设我有一个实体并希望在那里有邮件发送者:@EntitypublicclassEmailActivityextendsActivity{@Autowired@TransientprivateJavaMailSenderjavaMailSender;...}有没有比做更好的方法AutowireCapableBeanFactory.autowireBean(getCurrentSession().get(Activity.class,id));在我的DAO中?谢谢! 最佳答案

java - Hibernate 自动版本控制

我开发了一个客户维护应用程序。用户可以通过网络界面更改客户详细信息。我想处理以下场景:用户1加载customer1详细信息。User2加载customer1详细信息。User1更改并保存customer1的name。User2仅更改并保存customer1的年龄。在上面的场景中,最终数据库保存了customer1的旧名字和新年龄,因为User2覆盖了User1的更新.我正在使用hibernate。我听说HibernateAutomaticVersioning支持这个。如果有人知道如何处理这个问题,请告诉我。 最佳答案 你只需要添加一