Play Framework 2.1에서 JoinTable과 단방향 OneToMany 관계를 만들려고했습니다. 그러나 프레임 워크는 'JoinTable'을 생성하지 않습니다 : "transformation_input_files". 이상한 부분은 ManyToMany에 대한 관계를 변경하면 테이블이 생성된다는 것입니다. 다음은 코드입니다.JoinTable과 단방향 OneToMany 관계 - 테이블이 생성되지 않았습니다.
그래서 여러 S3Files가 포함 된 변환 클래스에 관한 것입니다. 즉 양방향 관계 수 없도록
@Entity
@Table(name="s3files")
public class S3File extends Model {
@Id
public Long id;
/*...*/
}
S3Files 더 모델에 사용된다 : 여기서
@Entity
@Table(name = "transformations")
public class Transformation extends Model {
@Id
public Long id;
/*...*/
@OneToMany(cascade = CascadeType.PERSIST)
@JoinTable(
name="transformation_input_files",
joinColumns = @JoinColumn(name="transformation_id"),
inverseJoinColumns = @JoinColumn(name="input_file_id")
)
public List<S3File> inputFiles;
}
가 S3File이다 : 여기서 변환 파일이다. @ManyToMany에서 @OneToMany를 변경하면 조인 테이블이 생성되지만 @OneToMany 관계를 고수하고 싶습니다.
어떻게이 문제를 해결할 수 있습니까? 내가 뭔가를 놓친 건가?
A와 B 사이에 일대일 관계 (예 :)가있는 경우 중간 표가 필요하지 않습니다. B는 칼럼에 AId (외래 키)를 가질 수 있으며 각 행에는 부모 A가 표시됩니다. 이유가있을 수 있습니까? – sanbhat
귀하의 의견을 보내 주셔서 감사합니다. 그러나 S3Files (예제의 클래스 B)는 더 많은 클래스에서 사용됩니다. 그래서 B와 비슷한 OneToMany 관계를 가진 C와 D와 같은 다른 클래스가 있다고하자. 클래스 B는 A, C, D에 대한 컬럼을 포함한다. B가 C 인스턴스에 의해 생성되고 소유 되었다면, A와 D는 null이고 연관성이 없다 . – Huub
조인 테이블을 매핑하면 테이블이 자동 생성되고 해당 구현 방법도 고려됩니다. – Ziul