Отображение двух таблиц в один и тот же атрибут в третьей таблице. Какие правильные аннотации использовать?
Вот sql:
CREATE TABLE `product` (
`main_id` int(11) NOT NULL AUTO_INCREMENT,
`type` varchar(50) NOT NULL,
`id` int (11) DEFAULT NULL ,
Foreign Key (`id`) REFERENCES `laptop`(`id`),
Foreign Key (`id`) REFERENCES `watch`(`id`),
PRIMARY KEY (`main_id`)
)
Вот важная часть таблицы продукта:
@Entity
@Table(name = "product")
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "main_id")
private int mainId;
@NotFound(action = NotFoundAction.IGNORE)
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "id")
private Laptop laptop;
@NotFound(action = NotFoundAction.IGNORE)
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "id")
private Watch watch;
Я сопоставил идентификатор длятолько ноутбук, и он работал и работал только с часами. Но это не сработало, когда я сопоставляю идентификатор столбца двум таблицам одновременно.