Tag: eclipselink

Entitymanager.flush()VS EntityManager.getTransaction()。commit – 我应该select什么?

更新数据库时应该如何select? 两种方法的优缺点是什么?何时使用这两种方法? public void disemployEmployee(Integer employeeId, Date endDate) { Employee employee = (Employee)em.find("Employee", employeeId); employee.getPeriod().setEndDate(endDate); em.flush(); } public void disemployEmployee(Integer employeeId, Date endDate) { Employee employee = (Employee)em.find("Employee", employeeId); em.getTransaction().begin(); employee.getPeriod().setEndDate(endDate); em.getTransaction().commit(); }

在JPA中禁用caching(eclipselink)

我想使用JPA(eclipselink)从我的数据库中获取数据。 数据库被其他许多来源所改变,因此我想回到执行的每个查找的数据库。 我已经阅读了许多关于禁用caching的post,但这似乎并没有工作。 有任何想法吗? 我试图执行下面的代码: EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("default"); EntityManager em = entityManagerFactory.createEntityManager(); MyLocation one = em.createNamedQuery("MyLocation.findMyLoc").getResultList().get(0); MyLocation two = em.createNamedQuery("MyLocation.findMyLoc").getResultList().get(0); System.out.println(one==two); 一个==两个是真的,而我希望它是假的。 我已经尝试添加每个/所有以下到我的persistence.xml <property name="eclipselink.cache.shared.default" value="false"/> <property name="eclipselink.cache.size.default" value="0"/> <property name="eclipselink.cache.type.default" value="None"/> 我也尝试添加@Cache注释到实体本身: @Cache( type=CacheType.NONE, // Cache nothing expiry=0, alwaysRefresh=true ) 我误解了什么?

什么是JPA中使用的referencedColumnName?

在JPA中有一个名为referencedColumnName的属性,可以在@JoinColumn, @PrimaryKeyJoinColumn设置,这个设置背后的想法是什么,有人能给出一个很好的例子来说明这个可以使用的地方吗?

为什么我需要configuration数据源的SQL方言?

当我们使用Hibernateconfiguration一个数据源时,我们应该添加hibernate.dialect属性(或者如果您使用的是EclipseLink,则添加eclipselink.target-database )。 我想知道方言的含义是什么? 我根据Hibernate的文档来configuration这个属性,但我不知道它的含义。

JPA的hashCode()/ equals()两难

在这里有一些关于JPA实体的讨论 ,并且应该为JPA实体类使用hashCode() / equals()实现。 大多数(如果不是全部的话)依赖于Hibernate,但是我想讨论它们JPA-implementation-neutrally(顺便说一句,我使用的是EclipseLink)。 所有可能的实现都有自己的优点和缺点 : hashCode() / equals()合同一致性 (不变性) List / Set操作 是否可以检测到相同的对象(例如来自不同会话,来自懒惰加载的数据结构的dynamic代理) 实体是否以分离(或非持久)状态正确运行 据我所知,有三种select : 不要超越他们; 依靠Object.equals()和Object.hashCode() hashCode() / equals()工作 不能识别相同的对象,dynamic代理的问题 没有问题与分离的实体 根据主键覆盖它们 hashCode() / equals()被破坏 正确的身份(所有被pipe理的实体) 与分离的实体有关的问题 根据Business-Id (非主键字段;外键?)覆盖它们 hashCode() / equals()被破坏 正确的身份(所有被pipe理的实体) 没有问题与分离的实体 我的问题是: 我错过了一个选项和/或亲/点? 你select了什么选项,为什么? 更新1: 通过“ hashCode() / equals()被破坏”,我的意思是说,连续的hashCode()调用可能返回不同的值,这是(当正确实现的时候)不会在Object API文档的意义上被破坏,从Map , Set或其他基于散列的Collection检索已更改的实体。 因此,在某些情况下,JPA实现(至lessEclipseLink)将无法正常工作。 更新2: 谢谢你的回答 – 他们中的大多数都有非凡的品质。 不幸的是,我仍然不确定哪种方法对于实际应用程序是最好的,或者如何确定我的应用程序的最佳方法。 […]