Hibernate 如何在可嵌入对象集合中映射同一列两次?
我希望多次映射同一列。为此,第二个映射是只读的。在大多数情况下,这种方法是有效的。 但是,在本例中,我得到了以下错误:Hibernate 如何在可嵌入对象集合中映射同一列两次?,hibernate,hibernate-mapping,Hibernate,Hibernate Mapping,我希望多次映射同一列。为此,第二个映射是只读的。在大多数情况下,这种方法是有效的。 但是,在本例中,我得到了以下错误: Repeated column in mapping for collection: Order.content column: item_id 请您帮助我理解,我的代码是什么: @Entity class Order { ... @OrderColumn(name = "idx") @JoinColumn(name = "order_id"
Repeated column in mapping for collection: Order.content column: item_id
请您帮助我理解,我的代码是什么:
@Entity
class Order {
...
@OrderColumn(name = "idx")
@JoinColumn(name = "order_id")
@ElementCollection(fetch = LAZY)
@CollectionTable(name = "order_content", schema = "orders")
private List<OrderContent> content;
}
@Embeddable
class OrderContent {
@JoinColumn(name = "item_id")
@ManyToOne(fetch = LAZY, targetEntity = Item.class)
private Long itemId;
@JsonIgnore
@ManyToOne(fetch = LAZY, targetEntity = Item.class)
@JoinColumn(name = "item_id", insertable = false, updatable = false)
private Item item;
}
@实体
阶级秩序{
...
@OrderColumn(name=“idx”)
@JoinColumn(name=“订单号”)
@ElementCollection(fetch=LAZY)
@CollectionTable(name=“订单内容”,schema=“订单”)
私有列表内容;
}
@可嵌入
类OrderContent{
@JoinColumn(name=“item\u id”)
@manytone(fetch=LAZY,targetEntity=Item.class)
私有长项目ID;
@杰索尼奥雷
@manytone(fetch=LAZY,targetEntity=Item.class)
@JoinColumn(name=“item\u id”,insertable=false,updateable=false)
私人物品;
}
谢谢。可能重复感谢您的回答,但不幸的是情况不同。我已经声明第二个映射为只读。对于实体,这很好。我的问题在于集合或@Embedable。我找不到任何解决办法。可能是重复的谢谢你的回答,但不幸的是,情况不同。我已经声明第二个映射为只读。对于实体,这很好。我的问题在于集合或@Embedable。我找不到任何解决办法。