当前位置: 首页 > 面试题库 >

如何使用Nhibernate删除多个数据库实体?

苗征
2023-03-14
问题内容

解决此问题的最佳做法是什么?有内置的批处理功能吗?

样例代码:

using (ITransaction transaction = _session.BeginTransaction())
{
   _session.Delete("FROM myObject o WHERE  o.Id = IN(1,2,...99999)");
   transaction.Commit();
}

提前致谢。


问题答案:

HQL支持IN子句,如果使用setParameterList,甚至可以传递一个集合。

var idList = new List<int>() { 5,3,6,7 };

_session.CreateQuery("DELETE MyDataClass o WHERE o.Id IN (:idList)")
    .SetParameterList("idList", idList)
    .ExecuteUpdate();

请注意,就像ddango在评论中提到的那样,将不会执行在对象中指定的关系级联,因为运行HQL查询只是转换为DB查询,并且实际上不会加载任何实体对象。



 类似资料:
  • 问题内容: 我正在用Node.js和Mongoose准备数据库创建脚本。如何检查数据库是否已经存在,如果存在,请使用Mongoose删除(删除)该数据库? 我找不到一种将其与猫鼬放在一起的方法。 问题答案: 没有办法从猫鼬中删除一个集合,最好的办法是删除其中一个的内容: 但是有一种方法可以访问mongodb本机javascript驱动程序,该驱动程序可用于 警告 尝试备份之前进行备份,以防万一出问

  • 我目前正在尝试使用spring数据存储库删除我的一些实体。delete调用工作时没有任何异常/错误消息,但之后不会删除实体。 这些是我的实体: 而且 存储库非常简单: delete调用类似于 有什么想法为什么这个变化没有反映在数据库中吗? 编辑1: 我找到了变通办法,但我还是不明白真正的问题是什么。如果我像这样删除帖子(有几个例外,因为违反了约束,但帖子仍然会被删除),它就“起作用”了: 编辑2:

  • 问题内容: 我想拥有一个配置文件,然后在创建会话时将hibernate-configuration-> session-factory-> connection.connection_string属性更改为我希望通过编程的方式?可能吗? 更新: 我相信我可以这样做 我想知道的是,如果这样还行,那么这是处理每个会话连接到不同数据库的不好方法吗?如果是这样,为什么等等。我还想知道是否/如何使用.net

  • 本文向大家介绍如何使用Java在MongoDB中删除数据库?,包括了如何使用Java在MongoDB中删除数据库?的使用技巧和注意事项,需要的朋友参考一下 MongoDB db.dropDatabase()命令用于删除现有数据库。这将删除当前数据库。如果您未选择任何数据库,则将删除默认(测试)数据库。 语法 在Java中,要删除数据库,首先,使用getDatabase()方法获取所需数据库的对象,

  • 我如何删除记录“苹果”(在图片中标记)? 根据文档,要移除一个项,需要对引用调用removeValue()。但要获得引用,我需要子ID。因为它是一个随机生成的id(-kisnx87ayigsh3ilp0d),如何删除它?

  • 主要内容:所需步骤,示例代码在本教程将演示如何在JDBC应用程序中删除一个指定的数据库。 在执行以下示例之前,请确保您已经准备好以下操作: 具有数据库管理员权限,以在给定模式中创建数据库。 要执行以下示例,需要用实际用户名和密码替换这里用户名()和密码()。 MySQL或数据库已启动并运行。 注意:这是一个严肃的操作,在继续删除数据库之前必须要确定是否真的执行删除操作,因为删除了数据库以后,数据库中的所有内容都将丢失,并且无