小编cha*_*han的帖子

如何在hibernate中按标准删除?

我有一张学生桌,想要删除班上的所有学生.

所以我的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)

java hibernate

39
推荐指数
4
解决办法
8万
查看次数

如何过滤2列之间的数字组?

我有一个表minmax列.我想搜索一组数字介于此范围min和之间的行max.

示例:我有一套(3, 4, 11, 18).

  1. 我的查询过滤可能看起来:

    (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)
  2. 但是我想知道是否有更好的方法:

    (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))

mysql sql

6
推荐指数
1
解决办法
348
查看次数

标签 统计

hibernate ×1

java ×1

mysql ×1

sql ×1