2014-02-13 3 views
0

У меня есть две таблицы ProductDetails и PartNumber. В таблице ProductDetails есть поле partNumber, которое также является основным ключом таблицы PartNumber.Проблема с Hibernate Один к одному Сопоставление

Текущий Mapping:

для PARTNUMBER таблицы:

@Id 
@Column(name = "Part_Number") 
private String partNumber; 

Данные поля PARTNUMBER добавляется отдельно. Теперь я хочу добавить это как столбец в разделе ProductDetails. Как должно быть указано отношение. Его отношение «один к одному». В ProductDetail есть только один PartDetail. Я написал что-то вроде.

@OneToOne(mappedBy = "partNumber") 
private PartNumber part_number = new PartNumber(); 

Как это должно быть в таблице PartNumber?

Update

Столбец в таблице Детали изделия что-то вроде

Id, ProductName, PartUsed, описание.

В этом PartUsed следует ссылаться на столбец Part_Number таблицы PartNumber.

+0

Что такое проблема с текущими настройками? – Smutje

+0

@Smutje Как указать имя столбца part_number в БД в таблице ProductDetail? Также правильная настройка выше? –

+0

Столбец не имеет имени, так как информация о связи сохраняется в таблице PartNumber. Вы можете (но не обязательно) добавлять ссылку на родительский объект ProductDetails, аннотированный с помощью '@ OneToOne'. – Smutje

ответ

0

В PARTNUMBER таблице аннотаций должны быть:

@OneToOne 
    @PrimaryKeyJoinColumn 
    private ProductDetails productDetails; 

И в ProdctionDetails таблице annotaion должно быть:

@OneToOne(mappedBy="productDetails") 
@JoinColumn(name="Part_Number") 
private PartNumber partNumber; 
Смежные вопросы