【问题标题】:NHibernate disable id generator for bulk operation用于批量操作的 NHibernate 禁用 id 生成器
【发布时间】:2011-02-25 18:34:59
【问题描述】:

我必须使用 nhibernate 和我的映射模型将数据批量导入我的数据库。 我为 ids 设置了一个 guid.comb 生成器。 有没有办法导入尚未分配 id 的数据以禁用临时 guid.comb id 生成器?

【问题讨论】:

    标签: nhibernate bulkinsert


    【解决方案1】:

    您可以暂时将 id 生成器更改为已分配。然后,在导入完成后将其切换回 COMB Guids。只要确保您明确调用 session.Save() 而不是 SaveOrUpdate()。这能解决你的问题吗?

    【讨论】:

    • 如果您要经常进行批量导入(而不仅仅是一次性操作),您可以在构建 SessionFactory 之前修改内存中的 Configuration 对象以将 id 更改为 Assigned。这样您就不必维护两组 hbm.xml 文件。我在这篇博文中讨论了一种类似的技术(用于临时使查找表可更新):jameskovacs.com/2007/11/04/…
    • 嘿,詹姆斯,非常感谢,您的解决方案似乎就是解决方案。只有一个问题:可以为级联实体禁用“Id 生成器”吗?多谢。附:我怎样才能将您的建议设置为我问题的真正答案?谢谢
    • Filip 这可能是更改 id 的好主意,但我在问如何做到这一点,并且不建议使用标准会话进行批量操作,而是需要使用Stateless Session 做批量操作有很多原因。还是谢谢
    • Hoghweed:没有考虑到您问题的“大部分”部分。是的,应该使用无状态会话处理批量操作。
    猜你喜欢
    • 2012-04-14
    • 1970-01-01
    • 2017-02-16
    • 2021-03-26
    • 2014-12-22
    • 2022-10-20
    • 2015-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多