|
|
1
2
你需要奔跑
使用刷新模式。自动,会话将在执行标准之前自动刷新。 编辑:而且很重要!在阅读您展示的代码时,看起来您并没有为您的工作单元使用事务。我建议您将工作单元包装在事务中——这是FlushMode所必需的。如果您使用NH2.0+,则自动工作! 请点击此处进一步阅读: NHibernate ISession Flush: Where and when to use it, and why? |
|
|
2
0
如果您希望在每次检查新标记时将其放入数据库中,则需要在保存后提交事务以将其放入其中。 另一种方法是在处理照片之前将标签读入收藏。 然后,就像你说的,你会搜索本地并根据需要添加新标签。完成文件夹后,您可以提交会话。 你应该发布你的映射,因为我可能没有正确解释你的问题。 |
|
3
0
这就是典型的“锁定不存在的东西”问题。我已经面对过好几次了,仍然没有一个简单的解决方案。 以下是我目前所知的选项:
例子:
这看起来很简单,但有一些问题。你总是会得到一个标签,它要么是现有的,要么是创建的(并立即提交)。但是,您获得的标签来自另一个会话,因此它被分离用于您的主会话。您需要使用级联(您可能不想)或更新将其附加到会话中。 创建标签不再与主事务耦合,这是目标,但也意味着回滚事务会将所有创建的标签留在数据库中。换句话说:创建标签不再是交易的一部分。 |