我正在尝试使用HibernateJPA,但是我需要创建我的persistence.xml(以便可以正确使用实体管理器)。我不确定要创建什么以及将其放置在何处。这就是我在“Core”模式下配置hibernate.cfg.xml的方式。我正在使用EclipseJavaEEIDEWeb开发人员(靛蓝发行版):com.mysql.jdbc.DriverXXXXXXjdbc:mysql:///XXXXXXXXXXXorg.hibernate.dialect.MySQLDialect 最佳答案 创建一个位于META-INF文件夹中的persis
我想将一个具体的父类(superclass)更改为其子类之一。我在下面包含了一个示例:@Entity@Table(name="employees")@Inheritance(strategy=InheritanceType.JOINED)publicclassEmployee{@Id@Column(name="id")privateStringid;publicEmployee(Stringid){this.id=id;}...}@Entity@Table(name="managers")@PrimaryKeyJoinColumn(name="id",referencedColumnN
我们有一个在JBoss5.1上运行的Java应用程序,在某些情况下,我们需要防止事务关闭,以防某些底层方法抛出JDBCException。我们有一个如下所示的EJB方法@PersistenceContext(unitName="bar")publicEntityManagerem;publicObjectfoo(){try{insert(stuff);returnstuff;}(catchPersistenceExceptionp){Objectt=load(id);if(t!=null){find(t);returnt;}}}如果insert由于PersistenceExceptio
我正在尝试将EHCache实现到我的工作原型(prototype)中,其中我有一个javax.persistence.Entity代表我的数据库中的一个表(MySQL、mysql-connector-java-5.1.20。jar),以XML格式提供给消费者。我面临的问题是Hibernate似乎仍在从数据库中检索数据,即使EHCache将查询结果存储在内存中。我正在使用EHCachemonitor查看内存中的项目计数,并在缓存过期之前直接在数据库上更改数据,以了解是否实际使用了缓存数据。我一直在寻找这个问题的复制但没有成功,所以也许我遗漏了一些东西(我刚刚进入Java世界)。我的文件p
编辑:感谢大家的回答,但问题出在我的数据源配置上,它实际上处于自动提交模式。参见myanswerbelow了解详情。EntityManager.flush()的Javadoc方法并在Google中搜索它似乎表明flush方法只将挂起的语句发送到数据库并且不提交事务。但是我创建的一个简单的测试Web服务(在Java7、Oracle11gR2、JBoss7.1中,Web服务被打包为一个jar文件)似乎表明并非如此:这是表创建脚本:CREATETABLEtest(idINTEGERNOTNULL,nameVARCHAR2(20),CONSTRAINTtest_pkPRIMARYKEY("ID
如果我调用,连接是否只返回到JPA应用程序中的连接池entityManager.close();?支持实体管理器的连接能否在其生命周期内发生变化?提前致谢魔珠 最佳答案 JPA规范没有定义这些东西,它取决于实现来管理连接。出于显而易见的原因,当事务处于Activity状态时,您可以安全地假设连接在提交之前是相同的。一旦txn结束,它可能会被退回,或者可能会根据实现情况被保留(你没有提到你的) 关于java-JPA应用程序中的连接何时返回到连接池?,我们在StackOverflow上找到一
问题概述在看似随机的时间,我们得到一个异常“postgresql重复键违反唯一约束”。我确实认为我知道我们的问题是什么,但我不想在没有可重现的测试用例的情况下更改代码。但是由于我们无法在生产环境中随机复制它,所以我向SO寻求帮助。在这个项目中我们有多个postgres数据库,并且为每个数据库中的每个表配置了一个主键序列。这些序列是这样创建的:createsequencePERSONS_SEQ;createsequenceVISITS_SEQ;etc...我们使用这些序列为这样的实体生成主键:@Entity@Table(name="visits")publicclassVisit{@Id
在处理我的应用程序时,我在尝试从Java集合中删除对象时遇到了问题(SetpulledfromdatabasewithEclipseLink)。我想在重写了equals方法的实体类中删除的对象。我什至检查了集合中的任何对象是否与我要使用以下代码删除的对象相同:for(AlbumEntityentity:deleteGroup.getAlbums()){System.out.println("VAL:"+deleteAlbum.equals(entity));}在这种情况下,返回的值之一为真。但是,如果我这样做:booleanresult=deleteGroup.getAlbums().
我正在使用JPA2.1示例应用程序和Hibernate4.3.x实现。org.hibernate.jpa.HibernatePersistenceProvidernet.roseindia.model.Product在pom.xml中,我有以下依赖项。org.hibernatehibernate-entitymanager4.3.5.Final示例命令行应用程序正常工作(非常简单)但是当我启动它时收到以下警告消息。Apr13,20141:12:43PMorg.hibernate.ejb.HibernatePersistencelogDeprecationWARN:HHH015016:E
我能否仅通过使用JPA以某种方式跟踪整个Entity-Graphs状态?考虑有一个包含两个或三个类的层次结构,其中至少有一个集合。通过使用JPA@Post...注释,我只能跟踪实际实体,而不是它的子实体和/或集合,因为它几乎只是包装的数据库事件。我知道Hibernate可以做到这一点,但我不想依赖JPA的实现来做到这一点。如果至少有一种方法可以使用EclipseLink做到这一点,我会非常高兴。 最佳答案 不确定这是否是您要搜索的内容,但您可以像这样检测实体的变化:Accounta=em.merge(account);finalJp