Tag: hibernate

Hibernate,Persistence和@OneToMany以及@ManyToOne注释问题

我对@OneToMany和@ManyToOne注释有些问题。 我有两个Class Suite和SuiteVersion。 SuiteVersion取决于套房。 所以我在我的代码中实现了这个: class级套房: @OneToMany(mappedBy = “suite”) @Cascade(CascadeType.DELETE_ORPHAN) private List listSuiteVersion = new ArrayList(); Class SuiteVersion: @ManyToOne() @Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE}) private Suite suite; 但是当我删除与SuiteVersion相关联的套件时,我遇到了一些问题。 Hibernate不会在Suite之前删除SuiteVersion。我不知道为什么,因为我在我的代码中已经提到过这个: @Cascade(CascadeType.DELETE_ORPHAN) 这是我删除套件时获得的日志: Hibernate:从SUITE中删除ID_SUITE =? 13août201009:40:50 org.hibernate.util.JDBCExceptionReporter logExceptions注意:SQL错误:-8,SQLState:2350413août201009:40:50 org.hibernate.util.JDBCExceptionReporter logExceptions GRAVE:完整性约束违规:外来关键不行动; FK42895651EA304E6表:SUITE_VERSION 预先感谢您的帮助。 最好的祝福, 弗洛朗, PS:对不起我的英语我是法国人。

如何使用Hibernate进行投影分组

我需要查找特定群组中的学生列表,并列出特定地址以及他们所在位置的电话号码。 我的主要问题是我无法检索每个学生的电话号码作为集合。 例如,如果我有student1,student2。 电话1111用于位置1中的student1和电话2222,电话3333用于位置1中的student2,电话444用于位置2中的student2。 可以说我有 Student1 Alex group1 1111 Location1 Street1 Student3 Jack group1 93939 Location2 Street4 Student7 Joe group2 22223 Location4 Street8 Student2 John group1 2222 3333 Location1 Street1 Student2 John group1 4444 Location1 Street2 Student12 Mark group1 4423 Location9 Street9 带数据的示例输出 User asks for all students in group1 and location1 Student1 Alex Street1 […]

使用Hibernate将java.util.Date持久化到MySql中的问题

我在过去的几个小时里一直在调试这个问题而没有成功,并且认为我会把它扔到SO那里看看它到底发生了什么。 我正在开发一个Java程序,它使用Hibernate和DAO / DTO模式将数据保存到MySql数据库中。 在我的数据库中,我有一个带有firstLoginDate列的memberprofile表。 在数据库中,该列的SQL类型是DateTime。 Hibernate XML文件的相应部分是 但是,当我尝试将Date保存到该表(在Java中)时,“日期”(年/月/日)部分正确保留,但“时间”部分(小时:分钟:秒)不是。 例如,如果我尝试保存代表2009-09-01 14:02:23的Java日期,那么数据库中的最终结果是2009-09-01 00:00:00 。 我已经确认我自己的代码没有在时间组件上踩踏; 据我所知,源代码(调试时)时间组件保持正确。 但是,在提交更改之后,我可以使用MySql查询浏览器检查相关行(或者只是从我的Java代码中的数据库中取出),实际上时间组件丢失了。 有任何想法吗? 我确实尝试过持久化java.sql.Timestamp而不是java.util.Date ,但问题仍然存在。 另外,我在另一个表中有一个非常相似的列,根本没有表现出这种行为。 我希望你们有问题,所以我会根据需要编辑。 谢谢! 编辑@Nate: … MemberProfile mp = … Date now = new Date(); mp.setFirstLoginDate(now); … MemberProfile几乎是DTO的包装类; 设置第一个登录日期会设置DTO的字段,然后提交更改。 编辑2:它似乎只发生在我的机器上。 我已经尝试重建表模式并清除所有本地源并从CVS重新签出,但没有任何改进。 现在我真的很难过。 编辑3:完全擦除我的MySql安装,重新安装它,并从已知的良好副本还原数据库也无法解决问题。

JPA / Hibernate:加入列时“缺少列”

我对JPA或Hibernate不太熟悉。 我正在接管其他人的代码而我现在只是想让它工作。 鉴于我的理解有限,我会尽量做到尽可能具体,不要淹没不必要的细节。 我有一个运行时exception“org.hibernate.HibernateException:Missing column:name in public.sessions。” 以下是该部分应用程序的基本组织: @Entity @Table(name = “sessions”) public class Session { @ManyToOne @JoinColumns({ @JoinColumn(name = “article_name”, referencedColumnName = “article_name”, insertable = false, updatable = false), @JoinColumn(name = “group_name”, referencedColumnName = “name”, insertable = false, updatable = false) }) private Group group; … } @Entity @Table(name = “groups”) public class Group […]

Ignite for Hibernate L2非常慢

我有Hibernate,Spring,PostgreSQL,MongoDB,Neo4j和ElasticSearch使用EhCache进行Hibernate L2和Spring Cache的系统,它运行良好。 我正在测试Ignite,但是当我把Ignite用于Hibernate L2时,系统变得极其缓慢(Spring Cache工作得很快),我让JProfiler看看什么真的很慢,我只是看到跟随方法非常慢: org.postgresql.core.VisibleBufferedInputStream.read(byte[ ], int, int) org.postgresql.jdbc2.AbstractJdbc2Statement.parseSql javax.persistence.EntityManager.find 这对我来说没什么意义。 我正在使用分支1.5.1-2中的Ignite 1.5.1.final-SNAPSHOT和https://github.com/apache/ignite/pull/388 (我做了一个更改,自动为Hibernate L2创建缓存),我测试了1.4.0,问题是一样的。 Ignite的配置: @Configuration public class CacheConfiguration { @Bean public DynamicClassLoaderWrapper dynamicClassLoaderWrapper() { return new DynamicClassLoaderWrapper(this.getClass().getClassLoader()); } @Bean @SuppressWarnings(“unchecked”) public CacheManager cacheManager() { IgniteConfiguration igniteConfiguration = new IgniteConfiguration(); igniteConfiguration.setGridName(“meceap-grid”); igniteConfiguration.setClassLoader(dynamicClassLoaderWrapper()); igniteConfiguration.setCacheConfiguration(this.createDefaultCache(“br.com.bruno.model.*”), this.createDefaultCache(“org.hibernate.cache.spi.UpdateTimestampsCache”), this.createDefaultCache(“org.hibernate.cache.internal.StandardQueryCache”)); SpringCacheManager springCacheManager = new SpringCacheManager(); springCacheManager.setConfiguration(igniteConfiguration); springCacheManager.setDynamicCacheConfiguration(this.createDefaultCache(null)); […]

HQL错误:with-clause引用了两个不同的from子句元素

我开始使用Hibernate并且我正在使用HQL,使用一些连接从数据库中检索数据但是得到此错误,任何有关如何解决此问题的帮助表示赞赏。 Field.hbm.xml文件: Rule.hbm.xml文件: HQL查询: select t.id, t.name, t.src_field_map.id, s1.field_map_nm as src_field_map_nm, t.tgt_field_map.id,s2.field_map_nm as tgt_field_map_nm from Rule as t left join t.src_field_map as s1 left join t.tgt_field_map as s2 with (s1.id = t.src_field_map.id and s2.id = t.tgt_field_map.id) 堆栈跟踪: ERROR: with-clause referenced two different from-clause elements with-clause referenced two different from-clause elements at org.hibernate.hql.internal.ast.HqlSqlWalker.handleWithFragment(HqlSqlWalker.java:465) at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromJoinElement(HqlSqlWalker.java:413) at […]

如何使用复合键映射多对多

我有以下表格 Trainingplan TrainingplanID int(11) AI PK Trainer int(11) Client int(11) validFrom date validTo date type int(11) TrainingplanExercises trainingplan int(11) PK exercise int(11) PK parameter int(11) PK value varchar(45) 不,我在使用Hibernate连接时遇到问题。 我做了以下:包豆; @Entity @Table(name = “Trainingplan”) public class Training { private IntegerProperty id; private ObjectProperty client; private ObjectProperty trainer; private ObjectProperty validFrom; private ObjectProperty validTo; private ObjectProperty […]

没有可用于当前线程的实际事务的EntityManager – 无法可靠地处理“刷新”调用

一些背景信息:我正在尝试将一个大项目从Hibernate 3.6.8迁移到5.2.5(包括JPA升级2.0到2.1),Spring 3.2.3到4.3.5并且面临严重问题。 到目前为止,Spring和Hibernate的配置还没有改变,并且在旧版本上运行良好,但是我自己无法解决升级问题。 我得到的例外是: 2017-01-16 10:15:25,635 ERROR [[ACTIVE] ExecuteThread: ’15’ for queue: ‘weblogic.kernel.Default (self-tuning)’] org.myproject.common.messaging.BaseMDB: Code: (11702) Source: (Common) Exception caught – Exception org.springframework.dao.InvalidDataAccessApiUsageException in org.myproject.core.processing.message.MessageReceiverImpl caught org.springframework.dao.InvalidDataAccessApiUsageException: No EntityManager with actual transaction available for current thread – cannot reliably process ‘flush’ call; nested exception is javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for […]

org.hibernate.HibernateException:无法实例化默认tuplizer

我正在使用Hibernate框架开发Web应用程序。 尝试运行webapp时出现此错误。 错误控制台: Exception caught in Create Account Dataorg.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] java.lang.NullPointerException 我的映射文件(hbm.xml): DataAccessObject文件代码: public void addCreateAccount(CreateAccount act) throws Exception { Session session = null; try{ //this step will read hibernate.cfg.xml SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); session.save(act); tx.commit(); }catch(Exception e) { System.out.println(“Exception caught in […]

以编程方式使用动态用户名和密码配置Hibernate

我正在实现一个Web应用程序,用户需要使用他的数据库用户名和密码进行身份validation。 我想使用相同的输入用户名和密码来连接数据库。 换句话说,我想在hibernate配置文件中这两个字段:(dbusername和dbpassword): dbusername dbpassword 可以根据输入用户名和密码的用户登录Web应用程序进行dynimacally填充。 这可以吗? 谢谢