В моем коде есть отношение oneToMany
между классом customer
и классом item
. Это означает, что у у клиента может быть одно или несколько предметов. Вот код клиента:Java-спящий режим: @OneToMany ассоциация не работает
@Entity
@Data
public class customer {
@Id
@GeneratedValue
int id;
String name;
String lastname;
@Embedded
Address address;
@OneToMany
@Column(name="ITEM_ID")
List<item> item;
}
и это класс пункт:
@Entity
@Data
public class item {
@Id
@GeneratedValue
int id;
String name;
String Serialnumber;
int price;
@ManyToOne
customer customer;
}
Тогда я сделал несколько тестов, чтобы попробовать свои запросы в моделях.
insert into item(id,name,Serialnumber,price) values(1,'bike','123',200);
insert into item(id,name,Serialnumber,price) values(2,'car','123',200);
insert into customer(id,name,lastname,Country,City,Street,No,item_id)
values(1,'Salman','Lashkarara','Iran','Tehran','Shariati','12',1);
insert into customer(id,name,lastname,Country,City,Street,No,item_id)
values(2,'Saba','Lashkarara','Iran','Tehran','Shariati','12',2);
insert into customer(id,name,lastname,Country,City,Street,No,item_id)
values(3,'Saba','Lashkarara','Iran','Tehran','Shariati','12',1);
Но когда я запускаю мой код, я столкнуться со следующей ошибкой:
Column "ITEM_ID" not found; SQL statement:
insert into customer(id,name,lastname,Country,City,Street,No,item_id) values(1,'Salman','Lashkarara','Iran','Tehran','Shariati','12',1)
Пожалуйста, обратите особое внимание, что это java mvc-spring
приложение и я создаю свои модели с помощью кода, так нет базы данных для проверки поля item_id.
Как вы можете видеть, я уже добавил @Column(name="ITEM_ID")
для определения столбца.
Для меня это не имеет смысла. Клиент может иметь несколько элементов. Поэтому невозможно, чтобы ссылка (ссылки) на элементы находилась в таблице клиентов. Отображаемое вами сопоставление, скорее всего, создало таблицу отображения n: m между клиентом и элементом. Если вы используете атрибут mappedBy, чем ссылка может быть в таблице элементов (в качестве ссылки на клиента) –