Я пытаюсь создать отношение «один ко многим» с @JoinTable
. Код работает и делает то, что он должен делать, НО, есть ли способ добавить больше столбцов в таблицу соединений? Это будет бизнес-приложение, которое нуждается в какой-то истории, поэтому мне понадобятся поля, такие как add_user
, update_user
, timestamp
о создании/обновлении в таблице соединений. Есть ли элегантный способ сделать это с Java, не добавляя дополнительные поля через таблицы изменений? Если есть, как изящно редактировать эти данные, скажем, я добавляю новое отношение, как изменить значение указанных полей? Я говорю элегантный, потому что вы всегда можете сделать что-то уродливое, в данном случае - создать отношение, а затем обновить поля этого отношения обоими идентификаторами, мне интересно, есть ли более красивое, более похожее на Java, путь.JPA: Дополнительные поля в @JoinTable
кодекс обоих образований:
@Entity
@Table(name="users")
public class Users {
int id;
String username;
private List<Jobs> jobs;
@OneToMany
@JoinTable(
name="users_jobs_rel",
joinColumns= @JoinColumn(name="user_id", referencedColumnName="user_id") ,
inverseJoinColumns= @JoinColumn(name="job_id", referencedColumnName="job_id")
)
public List<Jobs> getJobs() {
return jobs;
}
public void setJobs(List<Jobs> jobs) {
this.jobs = jobs;
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "user_id", unique = true, nullable = false)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
@Entity
@Table(name="jobs")
public class Jobs {
int id;
String title;
@ManyToOne
private Users user;
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "job_id", unique = true, nullable = false)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
Спасибо заранее.
Ваш ответ верный, но я уже использовал http://stackoverflow.com/questions/5127129/mapping-many-to-many-association-table-with-extra-columns для решения моей проблемы. Тем не менее, +1 за усилие :) – Candyman