Код: Выделить всё
productКод: Выделить всё
@Entity
@Table(name = "product")
public class ProductEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@Column(name = "name")
private String name;
@Column(name = "version")
private String version;
// getters and setter
}
< /code>
Среди некоторых продуктов есть некоторые продукты, которые получены из другого продукта, и существует необходимость хранить это отображение в таблице (таблица (таблица (sub_product_mappingКод: Выделить всё
@Entity
@Table(name = "sub_product_mapping")
public class SubProductMappingEntity {
@EmbeddedId
private SubProductMappingKeyEntity subProductMappingKeyEntity;
@MapsId("majorProductId")
@ManyToOne
@JoinColumn(name = "major_product_id", referencedColumnName = "id", nullable = false)
private ProductEntity majorProduct;
@MapsId("subProductId")
@ManyToOne
@JoinColumn(name = "sub_product_id", referencedColumnName = "id", nullable = false)
private ProductEntity subProduct;
// getters and setter
< /code>
и ключевая сущность заключается в следующем < /p>
@Embeddable
public class SubProductMappingKeyEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "major_product_id", nullable = false)
private int majorProductId;
@Column(name = "sub_product_id", nullable = false)
private int subProductId;
// getters and setters
< /code>
Для незначительного продукта может быть только один крупный продукт. Но для крупного продукта может быть несколько незначительных продуктов. Поскольку как MajorProduct Код: Выделить всё
@MapsId("majorProductId")
@ManyToOne
@JoinColumn(name = "major_product_id", referencedColumnName = "id", nullable = false)
private ProductEntity majorProduct;
@MapsId("subProductId")
@OneToOne
@JoinColumn(name = "sub_product_id", referencedColumnName = "id", nullable = false)
private ProductEntity subProduct;
Подробнее здесь: https://stackoverflow.com/questions/797 ... ld-be-used
Мобильная версия