我在Parent(Book)和Child(Page)表之间有一对多的关系。在父对象中我有一个
@OneToMany(cascade = CascadeType.ALL, mappedBy = "book", orphanRemoval = true)
private List<Page> pages = new ArrayList<>();
所以,我想复制这本书。我创建了新的Book对象,并使用方法
添加书中应该复制到新书的所有页面public void addPage(Page page) {
pages.add(page);
}
我也有BookRepository(扩展JpaRepository)。 然后我试了
bookRepository.save(newBook)
问题是所有页面都以混乱的订单ID保存,例如第1页有ID 34,第2页有ID 22,第3页有ID 27等(但我在newBook中按顺序添加了页面 - 1,2,3,4 ......) 如何修复它并在db中创建具有顺序ID的页面(例如,第一页应该具有ID 1,第二页应该具有ID 2等)?
答案 0 :(得分:0)
使用JPA2,您可以使用注释@Override
public void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// access data fragment
final FragmentManager fm = getFragmentManager();
this.myDataFragment = (MyDataFragment)fm.findFragmentByTag(MyActivity.MY_DATA_FRAGMENT);
.....
}
@Override
public void onResume() {
super.onResume();
if (myDataFragment.myData != null) {
// data already exists, SKIP to make network call. Process it directly, eg: update UI
.....
} else {
// fetch data from network via asynchronously task ---- [1]
// assume upon finish, the asynchronously task will invoke "onDataLoadFinish()" method below:
....
}
}
// assume this will be invoked by asynchronously network task [1] above
public void onDataLoadFinish (String data) {
// set data to data fragment, which can be reused by multiple fragments
this.myDataFragment.myData = data;
}
.....
private MyDataFragment myDataFragment = null;
来指定数据库表中的列,该列用于排序。如果您手动更新数据库,则必须将该列添加到表中并使用所需的页面顺序进行初始化。