问题标签 [dirty-checking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
11 回答
30207 浏览

c# - c# 将类属性标记为脏

下面是一个简单的枚举示例,它定义了一个对象的状态和一个显示该枚举实现的类。

当用数据库中的数据填充类对象时,我们将枚举值设置为“clean”。为了将大部分逻辑排除在表示层之外,我们如何在属性更改时将枚举值设置为“脏”。

我在想一些类似的事情;

在类的每个属性的设置器中。

这听起来像一个好主意吗,是否有人对如何分配脏标志有更好的想法,而无需在表示层中这样做。

0 投票
2 回答
3510 浏览

java - Hibernate 4 字节码增强不适用于脏检查优化

我使用的是 Hibernate 4.3.6,并使用了最新的Maven 字节码增强功能来检测所有实体的自我肮脏意识。

我添加了 Maven 插件:

我看到我的实体正在得到增强:

在调试时,我正在检查org.hibernate.event.internal.DefaultFlushEntityEventListener#dirtyCheck方法:

并且$$_hibernate_hasDirtyAttributes()总是返回false

这是因为$$_hibernate_attributeInterceptor始终为空,所以在设置任何属性时:

因为$$_hibernate_getInterceptor()为 null,trackChange 将被绕过,因此字节码增强不会解决脏属性,并且将使用默认的深度比较算法。

我错过了什么?如何$$_hibernate_attributeInterceptor正确设置,以便字节码检测方法跟踪脏属性?

0 投票
2 回答
4411 浏览

vb.net - 检查是否有任何控件已更改并在表单关闭时保存数据

我们正在使用 vb.net/dev express 工具。我们有几个控件文本框、组合等...而不是检查每个更改的值,我们想要遍历所有控件并检查是否已编辑任何内容,然后在表单关闭时保存。下面是我尝试完成的一些代码。问题是,虽然它在技术上有效......它使用递归 AddDirtyEvent(c) ,所以当我关闭表单并单击是保存时......由于多个控件它多次调用该消息框......如果我接受out ,它将无法工作并检测脏更改。我只是想知道我怎样才能让它以我想要的方式工作,或者是否有更简单的方法......

0 投票
1 回答
903 浏览

angular - 用candeactive实现角度材质对话框

在candeactive中实现angular 4材质对话框时面临的问题

每当我从一个页面导航到另一个页面时,如果表单字段有任何更改,我需要指出“有未保存的数据。你要关闭吗”。这应该会出现带有确定和取消按钮的确认窗口。

单击确定后,它应该导航到其他页面,否则它必须在同一页面中。我已经尝试过使用candeactive,当我使用window.confirm时它可以正常工作

但我的要求是使用 Angular 材质对话框实现确认窗口。 https://material.angular.io/components/dialog/overview

问题是在从 afterClosd 检索结果之前。它返回 false。因此,每当我在对话框中单击“确定”或“取消”时,它都不会移动到另一个屏幕。

0 投票
1 回答
4336 浏览

java - Spring数据 - 实体未更新

我有一个实体Customer和 Spring 数据接口,CustomerRepository如下所示:

我将Customer对象保存在数据库中,然后像这样更新一个字段:

我不明白为什么会打印:Customer(id=1, name=John, surname= Smith )。

据我所知,Hibernate 使用dirty checking机制来更新处于持久状态的实体。所以更改的姓氏应该在事务结束期间传播到数据库(但它不会 - 即使我将此代码分成两个@Transactional方法)。难道我做错了什么?每次更改后我真的需要save手动反对吗?为什么数据库中的姓氏字段没有更新?

0 投票
2 回答
1217 浏览

jquery - 如何检查文本框是否脏

您好以下是我的html代码

我只想在 abc 文本框中输入一些值时启用 loader_green_32.gif。$dirty 是不可能的,因为我没有使用表单标签

0 投票
0 回答
96 浏览

hibernate - Hibernate 返回最后一次获取和修改的对象,而不是获取新的

我的问题是这个。生病尝试使它简单。我正在使用带有 mysql 的 spring data jpa +spring boot (hibernate config)。

我有一个像这样的类(实体)。

这里其他类

请注意,您可以假设所有缺少的注释/方法/id 都在那里,这是完美的工作代码。我没有在这里添加这些以避免使问题复杂化。

这是我的问题。

当我从数据库中获取此 A 对象时,我将其添加到映射 [storageMap] 并在程序期间从 storageMap 中读取的 A 对象及其 B 对象值字段(A 对象映射中的 B 对象)获取更新。

但我的问题是当我再次从数据库中获取 A 时,它给了我之前获取的脏(修改)对象。但我需要从数据库中获取新副本来重置所有修改。hibernate 不知道它是脏的,因为它的 @Transient ?我怎么能解决这个问题。(我知道如果我在添加到我的 storageMap 之前深度复制从数据库返回的内容会解决问题。还有其他更好的方法吗?)

0 投票
2 回答
12644 浏览

vuejs2 - 如何在 VueJs 中实现脏状态

我是 VueJs 的新手,我正在开发一个表单,我只想Save在模型发生更改时启用按钮。

我最初的想法是compute将初始模型与当前模型进行比较的脏函数。

注意:此代码未经测试,此处仅作为示例。

有没有更好的方法来做到这一点,或者您可以对上述代码提出任何改进建议?

0 投票
1 回答
3920 浏览

angular - 如何检查 ngModel 输入字段是否脏?

我有这个 HTML 模板:

如何检查 my.component.ts 文件中的此字段是否脏?

现在我在 my.component.ts 文件中只有这个基本代码:

0 投票
1 回答
242 浏览

kendo-ui - 在剑道甘特图中设置 IsDirty 字段

在这样一个简单的例子中 - https://dojo.telerik.com/UViBAZAP如何将字段标记为脏?我想先进行更改,然后一次保存。

编辑 - 我希望 UI 上的字段显示它已被编辑。就像它在剑道网格中一样。