我有一张学生桌,想要删除班上的所有学生.
所以我的SQL查询看起来像:
delete from student where classId = 333
Run Code Online (Sandbox Code Playgroud)
如何使用带有标准的休眠来执行此操作?
我需要这个,所以我可以放入我的一个基类,以便从它扩展的任何DAO对象使用.所以我可以在所有DAO对象中使用它.
目前我已经创建了一个将在Student对象中使用的泛型方法 - 调用使用条件获取列表的find方法,然后在一个事务下执行批量删除,如下所示:
public boolean deleteByCriteria(Object deleteObject) {
List deleteObjectList = find(deleteObject);
if (deleteObjectList == null)
return false;
return deleteAll(deleteObjectList);
}
public boolean deleteAll(List deleteObjectList) {
if (logger.isDebugEnabled()) {
logger.debug("Entered BaseSchoolRollBookDAO -> delete");
logger.debug("Object for batch deletion [" + deleteObjectList + "]");
}
boolean result = false;
Transaction tx = null;
// Get CurrentSession from HibernateUtils
Session session = HibernateUtils.getSession();
// Start transaction
tx = session.beginTransaction();
// Create new …Run Code Online (Sandbox Code Playgroud) 我有一个表min和max列.我想搜索一组数字介于此范围min和之间的行max.
示例:我有一套(3, 4, 11, 18).
我的查询过滤可能看起来:
(3 between min and max) OR
(4 between min and max) OR
(11 between min and max) OR
(18 between min and max)
Run Code Online (Sandbox Code Playgroud)但是我想知道是否有更好的方法:
(3,4,11,12) between min and max
Run Code Online (Sandbox Code Playgroud)
这将与#1类似
我需要这个,因为该集可以在不同的搜索之间改变.任何帮助或建议表示赞赏.
更简单上下文中的表是类(classid,classname,minage,maxage).有成千上万的类 - 所以我得到web请求搜索具有特定年龄组的类,例如(3,4,11,12),其中用户正在搜索3岁,4岁,11岁和12岁的班级.
目前我的查询看起来:从类中选择*((最小和最大之间3)或(最小和最大之间4)或(最小和最大之间11)或(最小和最大之间18))