나는 내 대답을 참조하고 싶습니다 - 당신의 Person
-entity 및 Company
-entity은 또한 당신이 단방향 OneToMany
을 가질 수 있습니다 ... 어떤 종류의 ID
필요한 모든>https://stackoverflow.com/a/35549928/5909679
우선 ManyToOne
에는 양방향 관계가 필요합니다.
귀하의 필드 companyId
은 전혀 필요하지 않으며 귀하의 ManyToOne
에는 아무런 영향을 미치지 않습니다. JoinColumn
주석이 필요합니다.이 주석은 조인 테이블에서 원하는 열 이름을 선언합니다.
당신의 Person
-entity에서 : 당신의 Company
-entity에서
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
private Integer id;
@ManyToOne //FetchType.LAZY is by default
@JoinColumn(name = "company_id")
private Company company;
: 다음과 같은 그것을 할 당신이 당신의 가입 테이블의 이름을 더 제어를하려면
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
private Integer id;
@OneToMany(mappedBy = "company")
private List<Person> persons;
다음과 같이 선언하십시오.
@ManyToOne
@JoinTable(name="desired_table_name", joinColumns={@JoinColumn(name="person_id", referencedColumnName="id")}, inverseJoinColumns={@JoinColumn(name="company_id", referencedColumnName="id")})
private Company company;
앞에서 설명한 것처럼 회사 필드는 필요하지 않습니다. 그러나 식별자를 직접 사용하지 않고 식별자에 직접 액세스하려는 경우 유용 할 수 있습니다. getCompany(). getId() 호출. null의 경우도 있습니다. 내 지식에 추가 식별자 필드는 널리 사용되지 않습니다. – Marius