コミック オブジェクトは多くの Chapter オブジェクトを持つことができます。
私はComics
クラスでこれを持っています:
@OneToMany(targetEntity=Chapter.class, mappedBy="comics", fetch=FetchType.LAZY, cascade={CascadeType.PERSIST, CascadeType.REMOVE})
private List<Chapter> chapters = null;
コミックにチャプターを追加する私の方法:
public Chapter addChapter(Chapter chapter, String key) {
EntityManager em = EMF.get().createEntityManager();
EntityTransaction tx = null;
Comics comics = null;
try{
tx = em.getTransaction();
tx.begin();
comics = em.find(Comics.class, KeyFactory.stringToKey(key));
chapter.setPages( new LinkedList<Page>() );
comics.getChapters().add(chapter);
tx.commit();
}catch(Exception ex){
ex.printStackTrace();
if(tx != null && tx.isActive())
tx.rollback();
} finally{
em.close();
}
return chapter;
}
漫画を読むための私の方法:
public Comics read(String key) throws IllegalAccessException, InvocationTargetException{
EntityManager em = EMF.get().createEntityManager();
Comics comics = new Comics();
try{
Comics emComics = em.find(Comics.class, KeyFactory.stringToKey(key));
BeanUtils.copyProperties(comics, emComics);
comics.setChapters(new LinkedList<Chapter> (emComics.getChapters()));
}finally{
em.close();
}
return comics;
}
new を保存したときComics
、次のものもあります。
comics.setChapters( new LinkedList<Chapter>() );
問題は、read
メソッドが の予期しない順序を返すことですchapters
。順番に表示するための最良のアプローチは何chapters
ですか?