Какие отношения следует использоватьJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Какие отношения следует использовать

Сообщение Anonymous »

У меня есть таблица () следующим образом, в котором содержится данные, связанные с продуктом

Код: Выделить всё

@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 
, так и подпродукт являются экземплярами продукта , какими должны использоваться отношения? Действительно ли иметь отношения следующим образом? < /P>

Код: Выделить всё

 @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;
(Примечание: я использую Hibernate в качестве реализации JPA)

Подробнее здесь: https://stackoverflow.com/questions/797 ... ld-be-used
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»