メインサイトからハイバーネーションのチュートリアルを試していて、java.util.setインターフェースで何人から多くの関係が動作するかを知りたいことを少し変えたいと思っていました。私はテーブルEVENT、PERSON、そしてPERSON_EVENT.Nowテーブルにいくつかのダミー値を挿入し、マッピングテーブルにマッピングを追加しました。私はすべての人物のすべてのイベントを表示したいイベントまたはそれ以上に登録する。このコードで:そうhibernateとJava.util.setの問題
public void ShowPersonEvents()
{
Person aperson;
Event anEvent;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List<Person> persons = session.createQuery("from Person").list();
for(int i =0; i< persons.size(); i++)
{
aperson = (Person) persons.get(i);
Set a = aperson.getEvents();
// String[] events = (String[])a.toArray(new String[a.size()]);
// for (String e : events)
// {
// System.out.println(aperson.getLastname()+" is registerd to the" + e);
//
// }
Iterator it = a.iterator();
while(it.hasNext())
{
System.out.println(aperson.getLastname()+" is registerd to the" +(String) it.next().toString());
}
// System.out.println();
}
session.getTransaction().commit();
}
}
私は実行が誰であるか、正しい行数ではなく、同様の例行のショーの:ジョセフはopensouceイベント
に登録されているこれは次のようなものです。
Josephはドメインに登録されています[email protected]
これは[email protected]という形式です。 私はiteratorの部分をコメントするantは文字列配列にキャストのコメントを外します。私は例外があります:arraystoreexception。 私はちょっと迷っています。何が間違っているかはわかりません。あなたは一見して、何が間違っているのか教えてください。
感謝の結果のように見えるとして、あなたが、イベントクラスにのtoStringメソッドをオーバーライドしていないように私には見えますしかし、私はtoString関数をオーバーライドしたいと思います。retun this.getTitle();のようなものを返すだけで簡単です。またはそれの任意の組み合わせ? –
はい、簡単です: public String toString(){ return this.title; } – geofflane