Tag: persistence

通过JPA / Eclipselink无法看到更新的数据(在数据库中)

我有使用JPA / Eclipselink连接到数据库的Oracle DB和Java项目。 问题是当数据库中的某些数据更新(手动使用Oracle SQL开发人员)时,这些数据不能通过JPA看到,只能看旧值。 什么会导致这样的问题?

MyBatis不使用布尔映射

我只是想用Mybatis映射一个布尔值,但我遇到了问题。 首先,我将向您展示所涉及的部分: XML File: Java类: public class DestinationTypeDTO { private long destinationTypeId; private String description; private boolean available; public long getDestinationTypeId() { return destinationTypeId; } public void setDestinationTypeId(long destinationTypeId) { this.destinationTypeId = destinationTypeId; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public boolean isAvailable() { return […]

如何防止Eclipselink使用缓存消耗所有内存?

我的应用程序提取了大量的几何数据。 我使用Eclipselink 2.4.1将数据保存在MySQL数据库中。 应用程序以批处理方式工作,即我收集一组数据,然后保留它,继续下一组,持续等等。 另一个应用程序稍后会读取该数据并对其进行处理,但这个问题仅涉及收集数据的第一个应用程序。 数据收集应用程序运行了一段时间。 我使用一组固定的EntityManagers ,它们在启动时创建并直播,直到应用程序完成。 提取是multithreading的,每个线程有一个EntityManager。 我的问题是无论我如何配置缓存,一段时间后EclipseLink会占用所有内存,过了一会儿我得到一个OutOfMemoryError 。 我使用VisualVM提取我使用Eclipse Memory Analyzer分析的堆转储。 EntityManagerImpl.extendedPersistenceContext.cloneMapping持有可疑数量的内存。 此映射包含对我的几何数据对象的引用。 随着时间的推移,这个映射的大小会达到数百兆字节,这就是造成内存不足错误的原因。 我已经尝试过以下方法: 我通过配置eclipselink.persistence-context.reference-mode=weak使用弱引用。 我已经validation了EntityManagerImpl.extendedPersistenceContext.cloneMapping的类型是IdentityWeakHashMap 。 从关于弱缓存的文档中我可以预期,使用weak模式可以解决问题。 不幸的是,垃圾收集器仍然没有声明条目,我不断出现内存错误。 我试图用eclipselink.cache.shared.default=false完全关闭缓存。 问题依然存在。 有没有人建议这里发生了什么以及如何解决这个问题? 我也愿意接受如何规避问题的建议。

Bitronix + Spring + Hibernate + Persistence

我正在尝试创建事务管理器并将其与Hibernate for Oracle一起使用。 我的persistence.xml文件是: org.hibernate.ejb.HibernatePersistence jdbc/testDS1 org.drools.persistence.session.SessionInfo org.jbpm.persistence.processinstance.ProcessInstanceInfo org.drools.persistence.processinstance.WorkItemInfo true 在spring的applicationContext.xml中我添加了: myURL username password 但是,当我跑: EntityManagerFactory emf = Persistence.createEntityManagerFactory(“org.drools.persistence.jpa”); 我得到一个例外: Caused by: org.hibernate.HibernateException: Could not find datasource: jdbc/testDS1 ds = (DataSource ) NamingHelper.getInitialContext(props).lookup(jndiName); Hibernate infra文件。 可能是什么问题呢? Hibernate持久化如何知道引用spring txManager bean?

java.lang.IllegalArgumentException:找不到命名查询。(实体管理器未创建NamedQuery)

我正在使用hibernate 4.1.5.Final和Spring 3.1.2 Release以及Jboss 7.1。 我已经使用@NamedQuery注释在类中编写了所有命名查询,但实体管理器没有创建命名查询。 我发布了stacktrace和context.xml 09:58:49,695 ERROR [stderr] (http-localhost-127.0.0.1-8080-2) java.lang.IllegalArgumentException: Named query not found: validateLoginHash 09:58:49,770 ERROR [stderr] (http-localhost-127.0.0.1-8080-2) at org.hibernate.ejb.AbstractEntityManagerImpl.createNamedQuery(AbstractEntityManagerImpl.java:642) 09:58:49,772 ERROR [stderr] (http-localhost-127.0.0.1-8080-2) at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source) 09:58:49,774 ERROR [stderr] (http-localhost-127.0.0.1-8080-2) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 09:58:49,777 ERROR [stderr] (http-localhost-127.0.0.1-8080-2) at java.lang.reflect.Method.invoke(Method.java:597) 09:58:49,779 ERROR [stderr] (http-localhost-127.0.0.1-8080-2) at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:365) 09:58:49,782 ERROR [stderr] (http-localhost-127.0.0.1-8080-2) at $Proxy30.createNamedQuery(Unknown Source) […]

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:对不起我的英语我是法国人。

Spring DaoSupport和@PersistanceContext EntityManager?

理解Spring最困难的事情之一就是Spring支持针对同一问题的多种方法。 所以在我的应用程序中,我使用注入的EntityManager使用@PersistanceContext注释,例如: @Repository public class JpaDao extends JpaDaoSupport implements Dao { @PersistenceContext(unitName = “PersistanceUnit”, type = PersistenceContextType.EXTENDED) private EntityManager em; 这种方法是否与扩展JpaDaoSupport (需要注入EntityManager) 兼容 ? 对我来说,它似乎是解决相同问题的两种不兼容的方法,但我想从一些有更多Spring经验的人那里得到一些建议。 如果我不应该扩展JpaDaoSupport,我应该如何使用@PersistenceContext方法构建我的DAO?

如何在JBoss7.1.1.Final中创建多个持久性单元名称

我正在将jboss服务器4.1.2升级到jboss 7.1.1,因此获得exception是 15:51:24,655 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC00001: Failed to start service jboss.deployment.unit.”mobeeadmin.war”.DEPENDENCIES: org.jboss.msc.service.StartException in service jboss.deployment.unit.”mobeeadmin.war”.DEPENDENCIES: Failed to process phase DEPENDENCIES of deployment “mobeeadmin.war” at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_37] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_37] at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_37] Caused by: java.lang.IllegalArgumentException: JBAS011470: Persistence unitName was not specified and […]

保存后刷新并获取实体(JPA / Spring Data / Hibernate)

我有这两个简单的实体Something and Property 。 Something实体与Property具有多对一关系,因此当我创建一个新的Something行时,我会分配一个现有的Property 。 东西: @Entity @Table(name = “something”) public class Something implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = “name”) private String name; @Column(name = “owner”) private String owner; @ManyToOne private Property property; // getters and setters @Override public String toString() […]

Oracle瘦驱动程序与OCI驱动程序。 优点和缺点?

当您开发一个与oracle DB对话的Java应用程序时,有两个选项吗? 一个是oracle瘦驱动程序,另一个是需要自己安装的OCI驱动程序(如果我误解,请更正)。 现在,有什么利弊? 很明显,薄型驱动器在安装方面听起来要好得多,但是OCI可以做什么,薄的却不行? 开发环境是Tomcat6 + Spring 3.0 + JPA(Hibernate)+ apache-DBCP