【问题标题】:Entity Design with a table having only foreign keys具有只有外键的表的实体设计
【发布时间】:2018-11-22 14:14:47
【问题描述】:

如何为下表设计设计实体。

由于我在处理实体中的 MAP 表关系时遇到问题,因此我为该表添加了一个 RUN_ID,这实际上不是必需的,而且设计不好。

所以有人可以帮助创建实体设计。

我确实有以下疑问。 1. 我需要为 MAP 表创建一个单独的 Embeddable 键实体吗? 2.这里不需要每次都插入TYPE_MAST表,可以使用已有值添加到REQ_TYPE_MAP表中,如何实现呢?

【问题讨论】:

  • 这个表不应该有任何实体。两个实体之间应该有一个 OntoMany 或 ManyToMany 关联,由这个连接表映射。 docs.jboss.org/hibernate/orm/current/userguide/html_single/…
  • @JB Nizet :这个解决方案在我的情况下不起作用。为了坚持,我需要每次都在 Request 和 Type_Mast 表中进行插入。这里的第三个表只是一个映射表,告诉请求选择了哪个主控器。所以我觉得我需要在第三个表中维护那个 RUN_ID。 ?
  • 它适用于其他所有人,因此它也应该适用于您。如果没有,请准确说明您想要实现的目标,发布两个实体的代码以及您尝试过的代码。

标签: jpa mapping


【解决方案1】:

我认为这很简单。

请求:

@实体 @Table(name="请求") @AllArgsConstructor @数据 公共类请求{ 私人长请求ID; 私人字符串movileNo; 私人字符串civilId; @ManyToMany(级联 = { CascadeType.ALL }) @JoinTable( name = "Employee_Project", joinColumns = { @JoinColumn(name = "request_id") }, inverseJoinColumns = { @JoinColumn(name = "type_id") } ) 私人设置类型桅杆; }

对于 TypeMast

@实体 @Table(name = "type_mast") 公共类 TypeMast { // ... @ManyToMany(mappedBy = "typeMast") 私人设置请求; // 标准构造函数/getter/setter }

【讨论】:

  • 所以请求格式会是这样的?1146894886112256
  • @user630209 JPA 与 XML 和请求无关。这是关于坚持。在您的请求中发送您想要的任何内容,在处理请求的代码中,对您的实体执行您需要执行的任何操作。
  • JB Nizet : Hibernate: 插入请求 (civilid, mobile_no) 值 (?, ?) Hibernate: 插入 type_master (name, type_id) 值 (?, ?)....... ..........这些是按预期生成并抛出 ConstraintViolationException 的查询。在这里我不想触发第二个查询。 master 中没有插入。我需要为此添加一个单独的问题吗?
  • 我想我需要使用 RUN_ID 吗?我的要求不一样。每次都没有插入 type_master 表。请建议,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-14
  • 2011-05-09
  • 2011-12-22
相关资源
最近更新 更多