在 Xml 映射中使用 Hibernate 设置创建和更新时间

2024-01-08

我正在使用 HibernateXml映射。我有一个有两个字段的实体创建日期 and 更新日期类型的timestamp,当实体被持久化和更新时,必须用当前的 UTC 时间填充。 我知道 的存在@PrePersist and @PreUpdate注释,但我不知道如何在我的 Xml 映射中使用它们的等效项。

再次,我想知道 Hibernate 是否以某种方式本地支持更新和创建时间集。

Thanks


我知道 的存在@PrePersist and @PreUpdate注释,但我不知道如何在我的 Xml 映射中使用它们的等效项。

休眠3事件架构 http://docs.jboss.org/hibernate/core/3.3/reference/en/html/events.html#objectstate-events提供了等效的东西,你可以注册监听器PreInsertEvent, PreUpdateEvent or SaveOrUpdateEvent(参见org.hibernate.event包以获取完整列表)来设置和更新创建/更新日期。

另一种方法是使用拦截器 http://docs.jboss.org/hibernate/core/3.3/reference/en/html/events.html#objectstate-interceptors, 任何一个Session-范围或SessionFactory-scoped 并设置两者createDate and updateDate in onSave(...),更新updateDate in onFlushDirty(...).


Update:我将在下面留下我最初的建议,但我认为正确的方法(应该是我最初的答案)是使用拦截器或事件架构。

你可以使用generated的属性timestamp http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-declaration-timestamp to get creationDate and updateDate由数据库分别在插入和插入和更新时生成:

<class name="MyEntity" table="MY_ENTITY">
  <id .../>
  <timestamp name="createDate" generated="insert" ... />
  <timestamp name="updateDate" generated="always" ... />
  ...
</class>

请参阅有关生成的属性 http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-generated了解完整详情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Xml 映射中使用 Hibernate 设置创建和更新时间 的相关文章

随机推荐

  • Indexeddb - 我今天可以开始为其编码吗?

    我有最新版本的 Firefox 4 beta 和 Chrome 我想开始想出一些关于我可以用indexedDb 做什么的想法 到目前为止 它似乎还无法在任何浏览器中使用 关于何时可用有什么想法吗 Thanks Walter 它也在 Goog
  • 布尔表达式的最小化是NP完全的吗?

    我知道布尔可满足性是 NP 完全的 但它是布尔表达式的最小化 简化 我的意思是采用符号形式的给定表达式并生成符号形式的等效但简化的表达式 NP 完全 我不确定是否会从可满足性降低到最小化 但我觉得可能是这样 有人有确切消息么 好吧 这样看
  • 当用户单击列标题时,如何启用 DataGridView 排序?

    我的表单上有一个 datagridview 我用以下内容填充它 dataGridView1 DataSource students Select s gt new ID s StudentId RUDE s RUDE Nombre s Na
  • 将标记添加到现有谷歌地图(无需刷新谷歌地图)[重复]

    这个问题在这里已经有答案了 我的网站上有一个谷歌地图 正在生产 几乎没有标记 我想知道是否可以在现有地图上添加标记而不刷新我的谷歌地图 这就是我所拥有的 我加载我的网页 谷歌地图显示带有标记 单击按钮后 我想在我的地图上添加一个标记 无需刷
  • 在Shiny中通过tabPanel打开URL

    我的尝试 library shiny ui lt fluidPage navbarPage Sales Dashboard id sales tab tabPanel Panel 1 Test Panel value Test panel
  • 函数式编程 - 避免匹配表达式中的可变和改变 int 值

    我刚刚开始进行函数式编程 我目前要开始的小项目是一场基本的口袋妖怪战斗 先写代码 再解释 let choosePokemon let mutable pokemon DemoData schiggy let msg Console Read
  • 按最大值或按总值标准化?

    我正在做一些涉及文档比较的工作 为此 我分析每个文档 并基本上计算某些关键字在每个文档中出现的次数 例如 Document 1 Document 2 Book gt 3 Book gt 9 Work gt 0 Work gt 2 Dolla
  • 如何在reactjs中将数据二进制转换为图像?

    我已经在尝试这个 但它仍然对我不起作用如何在reactjs中将二进制数据转换为图像 https stackoverflow com questions 41972435 how to convert the binary data to i
  • OpenMP 并行 for 循环几乎没有性能提升

    我正在学习如何在 C 中使用 OpenMP 作为 HelloWorld 练习 我正在编写一个计算素数的程序 然后我将其并行化如下 int numprimes 0 pragma omp parallel for reduction numpr
  • 将 SimpleMembership 与 EF 模型优先结合使用

    Can 简单会员制与一起使用EF 模型优先 当我尝试时 我在调用时收到 无法找到请求的 NET Framework 数据提供程序 WebSecurity InitializeDatabaseConnection 换句话说 我无法接到电话We
  • 使用 JavaScript 从元素中删除 CSS 类(无 jQuery)[重复]

    这个问题在这里已经有答案了 谁能告诉我如何仅使用 JavaScript 删除元素上的类 请不要用 jQuery 给我答案 因为我不会使用它 而且我对此一无所知 正确且标准的方法是使用classList 就是现在大多数现代浏览器的最新版本得到
  • cd 到以“-”破折号开头的目录[重复]

    这个问题在这里已经有答案了 我正在学习 Git 我的第一个任务是导航到我的项目所在的目录 不幸的是 我的文档主文件夹具有以下形式 folder1 出于排序目的 以及每次我进入时 cd folder1 我收到错误 bash cd 参数太多 在
  • 如何删除/重命名 SQL 中的重复列(不是重复行)

    当尝试从 Sybase 到 Microsoft SQL 执行 OPENQUERY 时 我遇到错误 通过以下方式获得的结果集中不允许有重复的列名 OPENQUERY 和 OPENROWSET 列名 PatientID 重复 我构建的查询根据相
  • 我们如何在 C# 中设置 Excel 图表的位置?

    我正在尝试从 C 生成 Excel 图表 图表是通过查找生成的 但它总是出现在屏幕的中央 如何设置图表的位置 Thanks 我的代码如下所示 Microsoft Office Interop Excel Workbook ebook Mic
  • Lisp 中 1 和 '1 有什么区别?

    我从来没有真正考虑过 Lisp 中的符号是否可以是数字 所以今天我尝试了一下 gt 1 1 gt 1 1 2 gt 1 1 2 gt define a 1 gt a 1 2 上面的代码是方案 但在 Common Lisp 和 Clojure
  • Django:为每个请求/表单生成新的 CSRF 令牌

    我们是否可以更改每个表单请求甚至每个请求的 CSRF 令牌 而不是一个活动会话的相同令牌 假设您有权访问request object from django middleware csrf import rotate token rotat
  • 获取特定类的所有对象

    我必须通过引用列出作为类实例的对象 class Foo class Foo1 obj1 new Foo obj2 new Foo obj32 new Foo1 我需要一个解决方案来获取 Foo 类实例的所有对象 你知道怎么做吗 获取类的所有
  • 无法使用 Appium 移动 Android SeekBar

    我有一个像这样的定制Android搜索栏 以及它可以移动到的位置 它从中间开始 我想先移动滑块 然后检查它是否已保存 我有一个使用 TouchAction 的方法 public void moveSeekBar WebElement see
  • 二叉搜索树相对于哈希表的优点

    二叉搜索树相对于哈希表有哪些优点 哈希表可以在 Theta 1 时间内查找任何元素 并且添加元素也同样容易 但我不确定相反的优势 没有人指出的一项优点是二叉搜索树允许您有效地进行范围搜索 为了说明我的想法 我想举一个极端的例子 假设你想要获
  • 在 Xml 映射中使用 Hibernate 设置创建和更新时间

    我正在使用 HibernateXml映射 我有一个有两个字段的实体创建日期 and 更新日期类型的timestamp 当实体被持久化和更新时 必须用当前的 UTC 时间填充 我知道 的存在 PrePersist and PreUpdate注