Closed June222 closed 8 months ago
중요한 것은 @OneToMany의 'mappedby' 부분
정확히 어떻게 해결된지는 모르겠으나 추측하자면, 원래 Steel Table은 'steel_tb'라는 이름을 가지고 있었음. 1. Table의 이름을 강제하는 부분을 지우고 2. mappedby = 'steel' (Steel의 소문자 형태)
- @ ManyToOne (fetch = FetchType.LAZY) 을 진행한 뒤 해결되었음. 해결하는데 도움이 된 링크
@Table()
public class Steel {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "STEEL_ID")
private Integer id;
...
@OneToMany(mappedBy = "steel", orphanRemoval = true, cascade = CascadeType.ALL)
private List<SteelLabel> labels = new ArrayList<SteelLabel>();
...
}
## SteelLabel 클래스 (1대다에서 다역할)
```java
@Table(name = "steel_label_tb")
public class SteelLabel {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "LABEL_ID")
private int id;
private int label;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn()
private Steel steel;
Steel 의 Label에 여러가지가 있을 수도 있어 일대다 Mapping을 해야하는데 되지 않음.