OneToMany
側に@JoinColumn
を作成できないのはなぜですか?それはスロー:OneToMany側のJoinColumnが機能しない
2017-05-17 09:13:34.063 WARN 7724 --- [ main] o.s.b.f.s.DefaultListableBeanFactory : Bean creation exception on non-lazy FactoryBean type check: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'roleMapper' defined in file [C:\MyProjects\myjnia\Myjnia_Inzynier\target\classes\com\carwash\mappers\RoleMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in com.carwash.MyjniaInzynierApplication: BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration': Initialization of bean failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'org.springframework.context.annotation.ConfigurationClassPostProcessor.importRegistry' available
. //always the same but with every mapper interface
.
.
を私が方向を変更した場合 - Wash
側のJoinColumn
を入れて、それは動作しますが、私はAdmin
テーブルからWash
への参照を持っていると思います。
Admin
クラス:
public class Admin {
private Integer adminId;
private User userId;
private List<Wash> washId;
@OneToMany(mappedBy = "washAdmin", fetch = FetchType.LAZY)
@JoinColumn(name = "washId")
public List<Wash> getWashId() {
return washId;
}
Wash
クラス:あなたはあなたの関係の双方向を行う必要があり、この場合には
public class Wash {
private Integer washId;
private String name;
private WashLocation washLocation;
private List<Worker> washWorker;
private List<Reservation> washReservation;
private List<WashWashType> washTypes;
private Admin washAdmin;
@ManyToOne()
@JsonIgnore
public Admin getWashAdmin() {
return washAdmin;
}
public void setWashAdmin(Admin washAdmin) {
this.washAdmin = washAdmin;
}
完全なスタックトレースを追加してください – Jens
@Jens updated .. – bielas
'@ JoinColumn'は、要素内の列の名前、つまり' Wash'を指定します。そういうことです。 '@ JoinColumn'を' Wash'や 'Admin'に置くかどうかは関係ありません.FKは常に要素に入っています –