Собственно, при создание таблиц ругается на связи и в итоге таблица group
не создается, а создаются только subject
и subject_group
, вот лог:
Hibernate: alter table subject drop constraint FKdvgvxo0oxhxeepkkwug7vg4w4
Hibernate: alter table subject_group drop constraint FK8v7h1pu0ewqq6v6nky8jfwh1l
Hibernate: alter table subject_group drop constraint FK6xmk79mni0ym06e6wsiycs7hi
Hibernate: drop table if exists group cascade
Hibernate: drop table if exists subject cascade
21-Apr-2018 00:37:52.520 ERROR [RMI TCP Connection(76)-127.0.0.1] org.hibernate.tool.hbm2ddl.SchemaExport.perform HHH000389: Unsuccessful: alter table subject_group drop constraint FK8v7h1pu0ewqq6v6nky8jfwh1l
21-Apr-2018 00:37:52.521 ERROR [RMI TCP Connection(76)-127.0.0.1] org.hibernate.tool.hbm2ddl.SchemaExport.perform ОШИБКА: ограничение "fk8v7h1pu0ewqq6v6nky8jfwh1l" в таблице "subject_group" не существует
21-Apr-2018 00:37:52.522 ERROR [RMI TCP Connection(76)-127.0.0.1] org.hibernate.tool.hbm2ddl.SchemaExport.perform HHH000389: Unsuccessful: drop table if exists group cascade
21-Apr-2018 00:37:52.522 ERROR [RMI TCP Connection(76)-127.0.0.1] org.hibernate.tool.hbm2ddl.SchemaExport.perform ОШИБКА: ошибка синтаксиса (примерное положение: "group")
Позиция: 22
Hibernate: drop table if exists subject_group cascade
Hibernate: drop table if exists teacher cascade
Hibernate: create table group (id int8 not null, id_rasp int8, name varchar(255), primary key (id))
21-Apr-2018 00:37:52.531 ERROR [RMI TCP Connection(76)-127.0.0.1] org.hibernate.tool.hbm2ddl.SchemaExport.perform HHH000389: Unsuccessful: create table group (id int8 not null, id_rasp int8, name varchar(255), primary key (id))
21-Apr-2018 00:37:52.531 ERROR [RMI TCP Connection(76)-127.0.0.1] org.hibernate.tool.hbm2ddl.SchemaExport.perform ОШИБКА: ошибка синтаксиса (примерное положение: "group")
Позиция: 14
Hibernate: create table subject (id int8 not null, title varchar(255), type varchar(255), teacher_id int8, primary key (id))
Hibernate: create table subject_group (subject_id int8 not null, group_id int8 not null)
Hibernate: create table teacher (id int8 not null, first_name varchar(50) not null, id_rasp int4, last_name varchar(50) not null, login varchar(50), middle_name varchar(50), password varchar(50), primary key (id))
Hibernate: alter table subject add constraint FKdvgvxo0oxhxeepkkwug7vg4w4 foreign key (teacher_id) references teacher
21-Apr-2018 00:37:52.714 ERROR [RMI TCP Connection(76)-127.0.0.1] org.hibernate.tool.hbm2ddl.SchemaExport.perform HHH000389: Unsuccessful: alter table subject_group add constraint FK8v7h1pu0ewqq6v6nky8jfwh1l foreign key (group_id) references group
21-Apr-2018 00:37:52.714 ERROR [RMI TCP Connection(76)-127.0.0.1] org.hibernate.tool.hbm2ddl.SchemaExport.perform ОШИБКА: ошибка синтаксиса (примерное положение: "group")
Hibernate: alter table subject_group add constraint FK8v7h1pu0ewqq6v6nky8jfwh1l foreign key (group_id) references group
Hibernate: alter table subject_group add constraint FK6xmk79mni0ym06e6wsiycs7hi foreign key (subject_id) references subject
Позиция: 104
Вот 1 класс (убрал лишние геттеры и сеттеры из кода для читаемости)
@Entity
@Table(name = "subject")
public class Subject {
@Id
@GeneratedValue(generator = "increment")
@GenericGenerator(name = "increment", strategy = "increment")
private long id;
@Column(name = "title")
private String title;
@Column(name = "type")
private String type;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "teacher_id")
@JsonBackReference
private Teacher teacher;
@ManyToMany(cascade = {CascadeType.ALL})
@JoinTable(name = "subject_group",
joinColumns = @JoinColumn(name = "subject_id"),
inverseJoinColumns = @JoinColumn(name = "group_id"))
private List<Group> groups = new ArrayList<>();
public void addGroup(Group group) {
groups.add(group);
group.getSubjects().add(this);
}
public void removeGroup(Group group) {
groups.remove(group);
group.getSubjects().remove(this);
}
public List<Group> getGroups() {
return groups;
}
public void setGroups(List<Group> groups) {
this.groups = groups;
}
public Subject() {
}
}
вот 2 класс:
@Entity
@Table(name = "group")
public class Group {
@Id
@GeneratedValue(generator = "increment")
@GenericGenerator(name = "increment", strategy = "increment")
private long id;
@Column(name = "name")
private String name;
@Column(name = "id_rasp")
private long idRasp;
@ManyToMany(mappedBy = "groups")
private List<Subject> subjects = new ArrayList<>();
public Group() {}
public List<Subject> getSubjects() {
return subjects;
}
public void setSubjects(List<Subject> subjects) {
this.subjects = subjects;
}
}
Собственно в чем может быть проблема?
group
является зарезервированным словом в SQL и не может использоваться как имя таблицы или поля. Измените имя таблицы, должно помочь:
@Entity
@Table(name = "groups")
public class Group {
...
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Задача: разбить изображение на несколько частей по 200кбЧтобы знать, сколько должно быть таких частей, нужно знать размер изображения
Есть уже бд с таблицей Tasks(uuid, name, date, list(только что добавил столбец))Я хочу сделать, чтобы в последнем был uuid из другой таблицы Lists, где есть много...