2017-02-07 4 views
0

У меня проблема с моим отображением OneToMany. Мое исключение org.hibernate.MappingException: Повторный столбец отображения для объекта: колонка com.lcdut.model.SubjectsModel: группы (должно быть сопоставлен со вставкой = «ложь» обновление = «ложь»)Ссылка на столбец не работает с @ManyToOne hibernate-mapping

Если я использую udpatetable или вставить ложь, это та же проблема ((

@Entity 
@Table(name = "subjects") 
public class SubjectsModel { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private int id; 
    @Column(name = "groups") 
    private int groups; 
    ........... 
    @ManyToOne 
    @JoinColumns({ 
      @JoinColumn(name = "groups", referencedColumnName = "id_group") 
    }) 
    private StudentsModel studentsModel; 
    ........ 
} 

@Entity 
@Table(name = "students") 
public class StudentsModel { 
    @Id 
    @Column(name = "id") 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private int id; 
    @Basic 
    @Column(name = "pib") 
    private String pib; 
    @Basic 
    @Column(name = "id_group") 
    ........ 
    @OneToMany(mappedBy = "studentsModel") 
    private Set<SubjectsModel> subjects; 
} 

ответ

0
@Column(name = "groups") 
private int groups; 
........... 
@ManyToOne 
@JoinColumns({ 
    @JoinColumn(name = "groups", referencedColumnName = "id_group") 
}) 
private StudentsModel studentsModel; 
........ 

Эти два поля отображаются на той же колонке. Вам не нужно private int groups;. Удалите его и все будет работать.

+0

Я попытался это сделать, но ничего –

+0

Когда я это делаю, у меня другая ошибка ((Вызывается: org.springframework.data.mapping.PropertyReferenceException: не найдено групп свойств для типа SubjectsModel! –

0

Если я понять правильный путь, это должно быть 1: п-связь, и она должна работать как следующий (столбец/внешний ключ studentsid должна существовать как междунар в базе данных):

@Entity 
    @Table(name = "subjects") 
    public class SubjectsModel { 
     @Id 
     @GeneratedValue(strategy = GenerationType.AUTO) 
     private int id; 

     @ManyToOne 
     @JoinColumn(name = "studentsid") 
     private StudentsModel studentsModel; 
     ........ 
    } 

    @Entity 
    @Table(name = "students") 
    public class StudentsModel { 
     @Id 
     @Column(name = "id") 
     @GeneratedValue(strategy = GenerationType.IDENTITY) 
     private int id; 
     @Basic 
     @Column(name = "pib") 
     private String pib; 
     @OneToMany(mappedBy = "studentsModel") 
     private Set<SubjectsModel> subjects; 
    }