У меня есть две таблицы: customers и phoneNumbers
У одного customer может быть 1+ phoneNumbers.
Нужно ли мне добавлять OneToMany анатацию, чтобы показывать, что у customer есть несколько номеров? Если да, то как?
Немного уточню: нужно ли добавлять OneToMany, чтобы customer_id передавался от customer в phoneNumber?
Диаграма сущности:
+-------------------------------+
| customer |
+-------------+-------+---------+
| customer_id | name | surname |
+-------------+-------+---------+
| 1 | Alice | Rox |
| 2 | Bob | Ford |
| 3 | ... | ... |
+-------------+-------+---------+
+-----------------------+
| phoneNumbers |
+-------------+---------+
| customer_id | number |
+-------------+---------+
| 1 | +4456.. |
| 1 | +4474.. |
| 2 | +1871.. |
+-------------+---------+
Customer.java
@Data
@Entity
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "customers")
public class Customers {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "customer_id")
private long id;
private String name;
private String surname;
}
PhoneNumbers.java
@Data
@Entity
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "phoneNumbers")
public class PhoneNumbers {
@Id
@Column(name = "phone_id")
private long id;
private String number;
}
Update 1
PhoneNumber.java
@Data
@Entity
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "phoneNumbers")
public class PhoneNumbers {
@Id
private int id;
@ManyToOne
@JoinColumn(name="customer_id", nullable=false)
private Customers customers;
private String number;
}
Customer.java
@Entity
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "customers")
public class Customers {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "customer_id")
private long id;
private String name;
private String surname;
@OneToMany(mappedBy="customers")
private Set<PhoneNumbers> phone_id;
}
Теперь следует правильно применить @PrimaryKeyJoinColumn
Update. Данная вещь только для One-to-One возможна
Теперь в таблице phoneNumber нужно убрать id и заменить его customer_id. Если я убераю строки в java связанные с ID, то мне выкидывает ошибку hibernate
Продвижение своими сайтами как стратегия роста и независимости