我正在使用Spring-MVC。我正在使用休眠作为ORM工具。有一个名为'NoteOrder'的列。 SO对于任何CRUD操作,数据库中的数据顺序由NoteOrder管理。使用休眠设置排序顺序
问题:在任何CRUD操作后,我想重置从1开始的笔记本并递增,直到该表结束。
如何使用Hibernate查询来实现这一点。我搜索了类似的东西,找不到任何东西。我张贴以下代码以供参考。该函数返回一个列表。
@Override
public List<Notes> listNotesBySectionId(int sectionid, Person person) {
int personid = person.getId();
if(session == null) {
session = this.sessionFactory.openSession();
}else {
session = this.sessionFactory.getCurrentSession();
}
Query query = session.createQuery("from Notes as n where n.person1.id=:id and n.sectionid=:sectionid order by n.noteorder");
query.setParameter("id",personid);
query.setParameter("sectionid",sectionid);
List<Notes> notesList = query.list(); // this list has the noteorder by asking notelist.getNoteOrder();
System.out.println("Notes per sectionid per person are" + notesList);
return notesList;
}
您想维护NoteOrder列的备注订单吗?在每一个CRUD(没有读取,我猜)后你想要重置/更新NoteOrder? – 2014-11-04 19:24:29
未读取后...抱歉...只有在创建,更新,删除后。休息你问的是正确的。 – 2014-11-04 19:34:59
当你添加一些注意到它将结束(与最高的NoteOrder)?当你移除Note时,每一个索引较高的Note都应该更新(减1)? – 2014-11-04 19:43:21