Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >日志域对象更改

日志域对象更改
EN

Stack Overflow用户
提问于 2012-10-15 13:21:00
回答 1查看 607关注 0票数 1

我正在寻找一种优雅的方式来完成下一个任务:我有一个名为Ticket的实体,它有一些字段,如: owner,createdTs,body……,以及将跟踪在票证上执行的所有改变的列表实体。

我的应用是用Strus2、Spring3、Jpa + Hibernate构建的,我有一个服务类TicketService,它有方法保存/更新票证(票证)。

我试图在保存/更新方法之前实现一个aspect @,但我的问题是我无法访问ticket的旧值来检测更改并根据这些更改创建TicketHistory对象。

我尝试了方面方法,因为我从许多其他方法访问此方法,而现在这些对象(Ticket和TicketHistory)是紧密耦合的。

有什么想法吗?谢谢,

禤浩焯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-15 13:28:36

由于您使用的是Hibernate,因此有一个非常好的声明性解决方案:

Envers

Envers (适用于En titiy in ions)自动检测使用@Audited注释的实体上的更改,并在数据库中创建历史记录。您甚至可以向修订添加自定义信息,如进行更改的用户。

有关详细信息,请参阅Quickstart for Envers

缺点是您必须更改一些代码,因为将不再需要TicketHistory。旧版本的实体是通过AuditReader类访问的。

还要注意,当使用Envers时,您的程序直接依赖于Hibernate,而不仅仅是JPA。如果你想改变你的持久化提供者(这并不是经常发生),你会有更多的工作要做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12896501

复制
相关文章
Endnote 域代码已更改
word中参考文献位置出现“域代码已更改”的批注,并且还没有办法删除,现提供如下两个可能可以的解决方法:
全栈程序员站长
2022/06/26
8880
更改Tomcat日志目录
修改CATALINA_OUT的值,与logging.properties修改一样的路径,便于日志集中管理。
程裕强
2019/05/27
1.3K0
[Nginx] 1.17.9中的更改日志
5.更改使用“ error_page”指令重定向了494时,把状态码400换成494
唯一Chat
2020/04/14
3K0
xBIM 高级03 更改日志创建
  模型中发生的每一个变化都是事务的一部分,这是我们设计的核心。所有事务都是由 IModel 的实现创建的,并且从中被弱引用,因此当使用 using 语句模型时,只要保留事务,就只保留对该事务的引用。这意味着有一个单一的点,所有的变化都在发生,我们可以用它们来做一些事情。
张传宁IT讲堂
2019/09/17
3590
域对象共享数据
Model、ModelMap、Map类型的参数其实本质上都是 BindingAwareModelMap 类型*的
用户9615083
2022/12/25
4600
[PHP] PHP7.4.1安全版本更改日志
Bcmath: 修复了错误#78878(bc_shift_addsub中的缓冲区下溢)。 (CVE-2019-11046)。 核心: 修复了错误#78862(Windows上的null字节后,link()默默地截断)。 (CVE-2019-11044)。
唯一Chat
2020/04/08
9440
springmvc域对象共享数据
Model、ModelMap、Map类型的参数其实本质上都是 BindingAwareModelMap 类型的
一个风轻云淡
2022/11/13
3220
SpringMVC:域对象共享数据
Model、ModelMap、Map类型的参数其实本质上都是 BindingAwareModelMap 类型的
愷龍
2023/02/26
3200
「JavaScript」作用域与对象
请注意,本文编写于 2098 天前,最后修改于 174 天前,其中某些信息可能已经过时。
曼亚灿
2023/05/17
3940
「JavaScript」作用域与对象
[Redis] Redis6 的RC版本更改日志
Redis 6在许多关键方面对Redis进行了改进,并且是该项目历史上最大的Redis版本之一,因此,这里我们仅列出此版本中的最大功能:
唯一Chat
2020/04/16
8860
[PHP] PHP 7.4.4错误修复版本的更改日志
核心: 修复了错误#79329(一个空字节后get_headers()默默地被截断)(CVE-2020-7066) 修复了错误#79244(PHP在解析INI文件时崩溃)的问题。 修复了错误#63206(restore_error_handler无法还原以前的错误掩码)。 COM: 修复了错误#66322(COMPersistHelper :: SaveToFile可以保存到错误的位置)。 修复了错误#79242(COM错误常量与x86上的com_exception代码不匹配)。 修复了错误#79247(垃圾收集变体对象段错误)。 修复了错误#79248(遍历空的VT_ARRAY会引发com_exception)。 修复了错误#79299(com_print_typeinfo打印重复的变量)。 修复了错误#79332(永远不会释放php_istreams)。 修复了错误#79333(com_print_typeinfo()泄漏内存)。 CURL: 修复了错误#79019(复制的cURL处理上载空文件)。 修复了错误#79013(发布带有curl的curlFile时缺少Content-Length)。 DOM: 修复了错误#77569 :(在DomImplementation中写入访问冲突)。 修复了错误#79271(DOMDocumentType :: $ childNodes为NULL)。 Enchant: 修复了错误#79311(在大端架构下,enchant_dict_suggest()失败)。 EXIF: 修复了错误#79282(在exif中使用未初始化的值)(CVE-2020-7064)。 Fileinfo: 修复了错误#79283(libmagic补丁中的Segfault包含缓冲区溢出)。 FPM: 修复了错误#77653(显示运行者而不是实际的错误消息)。 修复了错误#79014(PHP-FPM和主要脚本未知)。 MBstring: 修复了错误#79371(mb_strtolower(UTF-32LE):php_unicode_tolower_full处的堆栈缓冲区溢出)(CVE-2020-7065)。 MySQLi: 修复了错误#64032(mysqli报告了不同的client_version)。 MySQLnd: 已实现FR#79275(在Windows上支持auth_plugin_caching_sha2_password)。 Opcache: 修复了错误#79252(预加载会导致php-fpm在退出过程中出现段错误)。 PCRE: 修复了错误#79188(preg_replace / preg_replace_callback和unicode中的内存损坏)。 修复了错误#79241(preg_match()上的分段错误)。 修复了错误#79257(重复的命名组(?J),即使不匹配,也更倾向于最后一种选择)。 PDO_ODBC: 修复了错误#79038(PDOStatement :: nextRowset()泄漏列值)。 反射: 修复了错误#79062(具有Heredoc默认值的属性对于getDocComment返回false)。 SQLite3: 修复了bug#79294(:: columnType()在SQLite3Stmt :: reset()之后可能失败。 标准: 修复了错误#79254(没有参数的getenv()未显示更改)。 修复了错误#79265(将fopen用于http请求时,主机标头注入不当)。 压缩: 修复了错误#79315(ZipArchive :: addFile不支持开始/长度参数)。
唯一Chat
2020/04/08
2.1K0
[PHP] PHP7.4.3安全版本的更改日志
核心: 修复了错误#71876(内存损坏htmlspecialchars():不支持字符集*))。 修复了错误#79146(CScript在某些系统上可能无法运行)。 修复了错误#78323(无效选项返回代码0)。 修复了错误#76047(访问已破坏的回溯参数时可以自由使用)。 CURL: 修复了错误#79078(curl_multi_add_handle()中的假定使用后释放)。 国际: 修复了错误#79212(NumberFormatter :: format()可能检测到错误的类型)。 Libxml: 修复了错误#79191(SoapClient ctor中的错误禁用了DOMDocument :: save())。 MBString: 修复了错误#79154(mb_convert_encoding()可以修改$ from_encoding)。 MySQLnd: 修复了错误#79084(mysqlnd可能使用MYSQLI_BOTH提取错误的列索引)。 OpenSSL: 修复了错误#79145(openssl内存泄漏)。 Phar: 修复了错误#79082(使用Phar :: buildFromIterator添加到tar的文件具有完全访问权限)。 (CVE-2020-7063) 修复了错误#79171(phar_extract_file中的堆缓冲区溢出)。 (CVE-2020-7061) 修复了错误#76584(PharFileInfo :: decompress不起作用)。 反射: 修复了错误#79115(ReflectionClass :: isCloneable调用反映类__destruct)。 Session: 修复了错误#79221(PHP Session上传进度中的空指针取消引用)。 (CVE-2020-7062) SPL: 修复了错误#79151(释放后由spl_dllist_it_helper_move_forward导致的堆使用)。 标准: 修复了错误#78902(使用stream_filter_append时发生内存泄漏)。 测试: 修复了错误#78090(bug45161.phpt永远需要完成)。 XSL: 修复了错误#70078(带有节点作为参数泄漏内存的XSL回调)。
唯一Chat
2020/04/08
1.1K0
4.域对象操作-thymeleaf
本文最后更新于 909 天前,其中的信息可能已经有所发展或是发生改变。 1.request 对应的接口:javax.servlet.http.HttpServletRequest 概念:只在一次请求上(转发不算请求,因为转发是服务器端的行为)生效,当把信息返回给客户端,该对象就被摧毁 2.session 对应的接口 :javax.servlet.http.HttpSession 概念:是服务器端的行为用于跟踪客户的状态,当用户去访问某个站点时,服务器端就会为客户产生一个sessionID,以cookie的方
Yuyy
2022/06/28
3310
4.域对象操作-thymeleaf
JS的this、作用域、闭包、对象
/** * Question 1 */ var name = 'window' var person1 = { name: 'person1', show1: function () { console.log(this.name) }, show2: () => console.log(this.name), show3: function () { return function () { console.log(this.name) }
上山打老虎了
2022/06/14
1.2K0
基于AD Event日志监测域委派后门
域委派是指将域内用户的权限委派给服务账号,使得服务账号能以用户权限开展域内活动。攻击者在获取到域控权限后,可以利用约束委派或者基于资源的约束委派实现后门,以实现达到维持权限的目的。
Bypass
2023/02/18
4040
基于AD Event日志监测域委派后门
JSP的内置对象以及作用域。
最近在面试,一些基础的问题总是会被问到,虽然是基础,但是有些东西在工作中用的少,所以就有些记不清了,在面试的时候更因为紧张很容易造成原先知道的知识也会突然忘了的情况发生。所以在重新组织一下jsp的内置对象以及作用域。
纪莫
2019/03/14
7430
JSP的内置对象以及作用域。
06JavaScript作用域与对象
即使我们在定义这个函数之前调用它,函数仍然可以工作。这是因为在 JavaScript 中执行上下文的工作方式造成的。
Dreamy.TZK
2020/04/09
5640
06JavaScript作用域与对象
【CSS】更改用户界面样式 ③ ( 取消文本域拖拽 | 代码示例 )
在网页布局中 , 一般不会允许这种情况发生 , 任意拖拽文本域会影响网页的整体布局 ;
韩曙亮
2023/04/24
7770
【CSS】更改用户界面样式 ③ ( 取消文本域拖拽 | 代码示例 )
[PHP] PHP7.4.2安全和修复版本的更改日志
核心: Windows上的预加载支持已被禁用。 修复了错误#79022(对于尚未准备好使用的类,class_exists返回True)。 修复了错误#78929(Cookie值中的加号转换为空格)。 修复了错误#78973(CV释放期间的析构函数如果从未保存opline会导致段错误)。 修复了错误#78776(来自trait的Abstract方法实现不检查“静态”)。 修复了错误#78999(将函数结果用作临时结果时发生循环泄漏)。 修复了错误#79008(在Windows上使用PHP 7.4进行常规性能回归)。 修复了错误#79002(使用__sleep序列化未初始化的类型属性会导致未序列化的问题)。 CURL: 修复了错误#79033(具有特定url和post的超时错误)。 修复了错误#79063(curl openssl不遵守PKG_CONFIG_PATH)。 Date: 修复了错误#79015(php_date.c中的未定义行为)。 DBA: 修复了错误#78808([LMDB] MDB_MAP_FULL:达到环境mapsize限制)。 Exif: 修复了错误#79046(NaN将int转换为exif中的未定义行为)。 文件信息: 修复了错误#74170(在mime_content_type之后更改语言环境信息)。 GD: 修复了错误#79067(gdTransformAffineCopy()可能使用单位化的值)。 修复了错误#79068(gdTransformAffineCopy()更改了插值方法)。 Libxml: 修复了错误#79029(在XMLReader / XMLWriter中免费使用)。 Mbstring: 修复了错误#79037(mbfl_filt_conv_big5_wchar中的全局缓冲区溢出)。 (CVE-2020-7060) OPcache: 修复了错误#78961(错误优化了重新分配的$ GLOBALS)。 修复了错误#78950(使用静态变量预加载特征方法)。 修复了错误#78903(RTD密钥冲突导致关闭导致崩溃)。 修复了错误#78986(当将ctor从不可变继承到可变类时,会发生Opcache segfaults)。 修复了错误#79040(由于ASLR,警告操作码处理程序无法使用)。 修复了错误#79055(OPcache文件缓存中的Typed属性变得未知)。 Pcntl: 修复了错误#78402(错误消息中将null转换为字符串是错误的DX)。 PDO_PgSQL: 修复了错误#78983(pdo_pgsql config.w32无法找到libpq-fe.h)。 修复了错误#78980(pgsqlGetNotify()忽略了无效连接)。 修复了错误#78982(pdo_pgsql返回无效的持久连接)。 Session: 修复了错误#79091(session_create_id()中的堆使用后释放)。 修复了错误#79031(会话反序列化问题)。 Shmop: 修复了错误#78538(shmop内存泄漏)。 SQLite3: 修复了错误#79056(sqlite在编译过程中不遵守PKG_CONFIG_PATH)。 Spl: 修复了错误#78976(SplFileObject :: fputcsv失败时返回-1)。 标准: 修复了错误#79099(OOB读取php_strip_tags_ex)。 (CVE-2020-7059) 修复了错误79000(非阻塞套接字流将EAGAIN报告为错误)。 修复了错误#54298(使用空的extra_header添加无关的CRLF)。
唯一Chat
2020/04/08
2.2K0
【C++】匿名对象 ① ( 匿名对象引入 | 匿名对象简介 | 匿名对象概念 | 匿名对象作用域 - 对象创建与销毁 )
匿名对象引入 : 在上一篇博客 【C++】拷贝构造函数调用时机 ② ( 对象值作为函数参数 | 对象值作为函数返回值 ) 中 , 讲到了 如果 类对象 作为函数的返回值 , 返回的是在 函数中 创建的 类实例对象 的 副本 , 其本质是一个匿名对象 ;
韩曙亮
2023/10/15
4810
【C++】匿名对象 ① ( 匿名对象引入 | 匿名对象简介 | 匿名对象概念 | 匿名对象作用域 - 对象创建与销毁 )

相似问题

更改全局作用域对象

12

检测域对象的更改

11

Webpack更改窗口全局对象作用域

12

更改javascript对象内部的作用域

113

Razor MVC -对象编辑字段更改日志

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文