Простите, если я делаю что-то не так, программируя или проектируя, я только начал учиться создавать весенние загрузочные API REST.
Для моего дизайна данных у меня есть объект User.
public class User {
private @Id @GeneratedValue(strategy=GenerationType.AUTO) Long id;
private String username;
private String firstname;
private String lastname;
@OneToMany(mappedBy = "created_by")
private Set<Ticket> tickets_created = new HashSet<>();
@OneToMany(mappedBy = "modified_by")
private Set<Ticket> tickets_modified = new HashSet<>();
//...getters setters
}
А затем для других моих таблиц, скажем, я хочу сохранить, кто создал данные, а кто последний изменил данные. Итак, допустим, у меня есть таблица с именем «Ticket».
public class Ticket {
private @Id @GeneratedValue(strategy=GenerationType.AUTO) Long id;
private String subject;
private String message;
//.... other columns
@ManyToOne
@JoinColumn(name = "user_id")
private User created_by;
@ManyToOne
@JoinColumn(name = "user_id")
private User modified_by;
//... getters setters
}
Так что это приведет к ошибке «1009 *», поскольку я сопоставил 2 столбца с пользователем. Я много занимался поиском, но не смог найти тот, где это было их дело, все, о чем я читал, было решено путем удаления одного столбца, так как он на самом деле не был нужен, или создания нового объекта, который отображает другие 2 сущности вместе, я не хочу этого делать, это будет означать, что для каждой моей таблицы, которая будет иметь "create_by" и "ified_by ", мне нужно будет создать другую таблицу, чтобы сопоставить ее с пользовательской таблицей.