Я импортировал некоторые классы модели JPA из схемы MySQL.
Вот один из примеров классов, которые автоматически генерируются JPA:
import java.io.Serializable;
import javax.persistence.*;
import java.util.Date;
/**
* The persistent class for the surveys database table.
*
*/
@Entity
@Table(name="surveys")
@NamedQuery(name="Survey.findAll", query="SELECT s FROM Survey s")
public class Survey implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(unique=true, nullable=false)
private int id;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="done_at")
private Date doneAt;
//bi-directional many-to-one association to Form
@ManyToOne
@JoinColumn(name="form_id", nullable=false)
private Form form;
//bi-directional many-to-one association to User
@ManyToOne
@JoinColumn(name="user_id", nullable=false)
private User user;
public Survey() {
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public Date getDoneAt() {
return this.doneAt;
}
public void setDoneAt(Date doneAt) {
this.doneAt = doneAt;
}
public Form getForm() {
return this.form;
}
public void setForm(Form form) {
this.form = form;
}
public User getUser() {
return this.user;
}
public void setUser(User user) {
this.user = user;
}
}
Проблема этой модели JPA в том, что она просто принимает сущности для внешних ключей. Я имею в виду, что здесь у меня есть внешние ключи form_id
и user_id
! Однако у меня нет каких-либо установленных функций, например следующих:
public void setForm(int formId) {
Form form = find from table forms with id equal to formId;
this.form = form;
}
or
public void setForm(int formId) {
this.formId = formId;
}
Как я могу заставить JPA генерировать такие функции также, когда он пытается импортировать схему!?
Если это невозможно, каковы лучшие практики для расширения класса модели JPA? Я имею в виду, что это может произойти в будущем при изменении схемы базы данных. Мне нужно импортировать модели JPA опять же, может быть, не стоит реализовывать эти функции вручную внутри модели JPA и манипулировать ею вручную. объектов? Моя программа считывает некоторые фиктивные данные и пытается заполнить таблицы в MySQL. Проблема в фиктивных данных. У меня есть внешний ключ сущностей User
и Form
. Они уже существуют в БД, и мне не нужно создавать их снова.