【问题标题】:Providing timestamp in reference table (many to many relationship)在引用表中提供时间戳(多对多关系)
【发布时间】:2017-02-27 20:43:28
【问题描述】:

考虑下表(表 A 和 B 之间的引用表,多对多关系):

A_ID int (FK),
B_ID int (FK),
change_date timestamp - represents timestamp when this relation has been created. 

提供此时间戳的最佳解决方案是什么?当我执行插入(实际上是 Hibernate 执行)时,Hibernate 只知道 A_ID 和 B_ID。

目前唯一听起来合理的解决方案是触发器。你怎么看?

【问题讨论】:

  • 你将不得不更详细地解释你的问题——不清楚你在问什么
  • 在创建关系时插入时设置时间戳有什么问题?
  • @TimBiegeleisen 如果这很容易,请发布您对此问题的解决方案。

标签: mysql sql hibernate many-to-many entity-relationship


【解决方案1】:

如果您希望将数据添加到多对多关系表中,只需将此表映射为实体,并将其作为实体进行管理。

AB 中,映射从@ManyToMany@OneToMany

在新实体AB 中,您将AB 映射到@ManyToOne@Id(两个字段)。

查看休眠参考文档中的Example 134(带链接实体的双向多对多)。

【讨论】:

    【解决方案2】:

    您可以使用 DEFAULT 值作为 CURRENT_TIMESTAMp。我认为这应该可行。

    A_ID int (FK),
    B_ID int (FK),
    change_date timestamp default Current_timestamp ON INSERT
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-03
      • 2013-01-18
      • 2018-08-19
      • 2017-02-05
      • 1970-01-01
      相关资源
      最近更新 更多