当前位置: 首页 > 知识库问答 >
问题:

JPA映射@EmbeddedId与ManyToOne关系

祁杰
2023-03-14

所以我在网上搜索了我的问题的答案,但没有找到有帮助的东西,基本上是需要在两个类之间有一个ManyToOne关系,其中一个类有一个EmbeddedId,我要把代码留在这里,错误信息是它给(我使用野蝇来运行服务器)。

公共类InventoryPK实现可序列化{

@ManyToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "user_id")
private Item itemId;

@ManyToOne
@JoinColumn(name="CD_EMPRESA")
private Company company;

}

@实体@Table(name=“inventario”,schema=“mxnextmob”)

公共类库存扩展基本模型{

@EmbeddedId
private InventoryPK id;

@SequenceGenerator(schema = "mxnextmob", name = "inventory_sequence", sequenceName = "inventory_sequence", allocationSize = 1, initialValue = 1)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "inventory_sequence")
private Integer inventory;

@Column
private BigDecimal quantity;

@Column
private BigDecimal weight;

}

公共类公司扩展BaseModel{

@Id
@SequenceGenerator(schema = "mxnextmob", name = "company_sequence", sequenceName = "company_sequence", allocationSize = 1, initialValue = 1)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "company_sequence")
private Integer code;

@Column
private String name;

@OneToMany(mappedBy = "company")
private List<UserSeller> userSeller;

@OneToMany(mappedBy = "id.company")
private List<Inventory> inventories;

}

误差如下:

服务jboss。坚持小组。“mxnext mobile.war#mxnextmobiles”:org。冬眠AnnotationException:mappedBy引用未知的目标实体属性:br。通用域名格式。maxiconsystems。可移动的模型库存公司在br。通用域名格式。maxiconsystems。可移动的模型公司库存

共有1个答案

太叔京
2023-03-14

有几种方法可以将你似乎拥有的东西映射为一张表,但我建议将库存更改为:

public class Inventory extends BaseModel {
  @Id
  @SequenceGenerator(schema = "mxnextmob", name = "inventory_sequence", sequenceName = "inventory_sequence", allocationSize = 1, initialValue = 1)
  @GeneratedValue(strategy = GenerationType.AUTO, generator = "inventory_sequence")
  private Integer inventory;

  @Embedded
  private InventoryPK alternateKey;

  @Column
  private BigDecimal quantity;

  @Column
  private BigDecimal weight;
}

这允许您使用库存整数作为主键;这简化了将来可能需要添加到清单中的任何引用,因为JPA中需要外键来引用其所有ID列。

 类似资料:
  • 问题内容: 尝试创建组合键(EmbeddedId)时,我遇到了Ebean的问题。 这是我所拥有的草案: 注意 :我正在将Ebean 4.1.4与Java 1.6一起使用。 因此,此代码运行良好,但存在一个我正在尝试解决的问题-数据库中的结果表如下所示: entityB_ID [主要] entityA_FK_ID [主要] 实体A_fk 如您所见,考虑到“ entityA_FK_ID”列,最后一列是

  • 我在Spring Boot JPA应用程序中有以下设置: 可嵌入 原因:org.hibernate.AnnotationException:mappedBy引用了未知的目标实体属性:com.foobar.entity.logSearchHistoryAttr.logSearchHistoryAttrs中的com.foobar.entity.logSearchHistoryAttr.logSearc

  • 我发现了其他有相同错误的主题,但没有一个似乎涵盖了我的问题。 你能帮我弄清楚是什么问题吗? 多谢!

  • 主要内容:ORM框架,映射方向,映射类型对象关系映射(ORM)是一种功能,用于通过将对象状态映射到数据库列来开发和维护对象和关系数据库之间的关系。 它能够轻松处理(或执行)各种数据库操作,如插入,更新,删除等。 ORM框架 以下是在ORM机制上运行的一些框架 - Hibernate (参考:http://www.yiibai.com/hibernate ) TopLink ORMLite iBATIS JPOX 映射方向 映射方向可分为

  • toString()]hibernate:/*插入com.pissolato.api.entitys.sale*/插入到sale(company,created,description,discount,sub_value,type,updated,user,value)值(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)

  • 问题内容: 我目前正在阅读有关实体关联的Hibernate文档,但遇到一些困难却难以理解。它在本质上做的区别和联系。尽管我在实际项目中使用了它们,但是我无法完全理解它们之间的差异。据我了解,如果一个表/一个实体与另一个实体有关联,则该关联应来自另一侧。那么,我们应该如何根据具体情况决定选择哪个呢?它又如何影响数据库/查询/结果?到处都有很好的例子吗? PS:我认为这与问题相关,如果有人可以解释关联