1

奇妙な問題があります。データベースのビューから行を作成すると、それはうまくいき、非常にうまく表示されます。ただし、重複行を取得する場合があり、同じ重複行を追加した行が何度も表示されます。ただし、アプリケーションを再デプロイすると、問題が解決され、エントリが再びクラッシュして同じ問題が発生するまで、行が再び適切に表示されます。エラーが発生していないため、何が起こっているのかわかりません。EJB 3.0、glassfish 3.1.1、JSF 2.0、EclipseLink、および JavaDB を使用しています。

上はデータベースの行、下は IDE の行です。

これはビューでどのように見えるかです

これは私の永続的なコードです:

@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>

4

1 に答える 1

1

共有キャッシュ内のオブジェクトを何らかの形で破損しているようです。

共有キャッシュを無効にするには、以下を参照してください。

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

オブジェクトをコレクションに追加する方法を確認し、新しいオブジェクトが一意の ID を持っていることを確認し、同じオブジェクトを 2 回追加していないこと、または既存のオブジェクトを変更していないことを確認してください。

オブジェクトの編集方法のコードを含めます。

于 2012-06-07T14:27:40.977 に答える