質問

まず第一に、ご覧のとおり、私はJava、特にNetBeans IDEで働いています。だから、私にはトレーナーとアスリートの2つのクラスを拡張するクラスの人がいます。

主に、私は新しいものを作成します ArrayList list = new ArrayList();

そして、私は作成したオブジェクトでリストを記入し、永続的にしました。

Trainer tr1=        new Trainer("George","White","England",5665);
Athlete ath1=       new Athlete("Mairy","Willians","France",1,'f',"21/3/1988",68,172,"France");
list.add(ath1);
Athlete ath2=new Athlete("Iggy","Black","USA",2,'f',"10/4/1988",70,175,"U.S.A.");
list.add(ath2);
tr1.setAthletes(list);

(これらのフィールドは、それぞれクラストレーナーとアスリートのコンストラクターで明確に定義されています。

また、それらを永続的にします。

em2.persist(tr1);
em2.persist(ath1);
em2.persist(ath2);

しかし、最終的には、アスリートとトレーナーが永続的であるにもかかわらず、私が持っていないリストはそうではありません。

それが私の問題が始まるところから、それらのリストを永続的にしたいです。

ここでは、これらのリストが機能してテストされており、大丈夫ですが、obsomdBレベルではなく、Javaレベルで行くのに適しています。

最初からやり直すべきですか?

この人たちを助けることができる人はいますか?私は本当に助けが必要です、それは深刻です。

PS:もちろん、私はそのような必要な輸入品を作成しました

import javax.persistence.*;
import java.util.*;

EntityManagerFactory emf2 = Persistence.createEntityManagerFactory("$objectdb/db/personas2.odb");
EntityManager em2 = emf2.createEntityManager();
em2.getTransaction().begin();
em2.close();
emf2.close();
役に立ちましたか?

解決

しかし、最終的には、アスリートとトレーナーが永続的であるにもかかわらず、私が持っていないリストはそうではありません。

いくつかのアイデア:

  • あなたを確認してください commit トランザクション(ただし、エンティティは持続していると述べましたが)。

  • もしあなたの 多くの人に 間の関連 TrainerAthlete 双方向(エンティティを表示するかもしれません)は、このようにリンクの「他の」側面を正しく設定するようにしてください。

    Trainer tr1 = new Trainer("George","White","England",5665);
    Athlete ath1 = new Athlete("Mairy","Willians","France",1,'f',"21/3/1988",68,172,"France");
    ath1.setTrainer(tr1); // set the other side of the link
    list.add(ath1);
    ...
    tr1.setAthletes(list);
    

    または、エンティティにメソッドを追加します(in Trainer ここ):

    public void addToAthletes(Athlete athlete) {
        athlete.setTrainer(this);
        this.athletes.add(athlete);
    }
    

    上記の行を次のように置き換えます。

    Trainer tr1 = new Trainer("George","White","England",5665);
    Athlete ath1 = new Athlete("Mairy","Willians","France",1,'f',"21/3/1988",68,172,"France");
    tr1.addToAthletes(ath1);
    
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top