gpt4 book ai didi

java - EJB 检索重复行

转载 作者:太空宇宙 更新时间:2023-11-04 08:12:43 25 4
gpt4 key购买 nike

我有一个奇怪的问题。当我从数据库中的 View 创建行时,它做得很好,并且显示得非常好。但有时它会检索重复的行,并且我添加相同重复行的任何行都会一次又一次出现。但是,当我重新部署应用程序时,问题得到解决,并且行再次正确显示,直到条目再次崩溃,导致同样的问题。我不知道发生了什么,因为没有错误。我正在使用 EJB 3.0、glassfish 3.1.1、JSF 2.0、EclipseLink 和 JavaDB。

the above one is the row in the database, the below one is in the IDE

this is how it looks like in the view

这是我的持久代码:

@Override
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void create(Carrier carrier) {
em.persist(c.getObject());
em.flush();
}
}

这是我的检索代码:

o@Override
public List<CrpPaypoint> getPaypoints() {
Query q = em.createQuery("SELECT c FROM CrpPaypoint c ORDER BY c.levelOrder.levelOrder");
List<CrpPaypoint> list = q.getResultList();
return list;
}


<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="hrtestPU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/hrdb</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="eclipselink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>

最佳答案

您似乎以某种方式破坏了共享缓存中的对象。

要禁用共享缓存,请参阅,

http://wiki.eclipse.org/EclipseLink/FAQ/How_to_disable_the_shared_cache%3F

检查如何将对象添加到集合中,确保新对象具有唯一的 ID,确保不会两次添加相同的对象,或更改现有对象。

包含有关如何编辑对象的代码。

关于java - EJB 检索重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10915570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com