Здравствуйте, у меня есть задача создать приложение с использованием весенней загрузки и гибернации.Дело в том, что я создаю базу данных через файл data.sql, чтобы сохранить данные и создать базу данных.Теперь мне нужно создать таблицу отношений между моими двумя таблицами.Это должно быть отношение один ко многим, учитывая, что работник может иметь учетную запись пользователя или может не иметь учетной записи.Проблема заключается в том, как создать эту таблицу отношений при запуске приложения, поскольку ссылки должны быть внешними ключами user_id и worker_id , которых у меня нет при запуске, поскольку они создаются автоматическив спящем режиме, так что нет способа жестко их закодировать.Таким образом, вопрос заключается в том, как бы я мог создать эту таблицу отношений из data.sql.
data.sql:
INSERT INTO worker (name, last_name, status) VALUES
('manuel', 'dias', 'active'),
('sailin ', 'nal', 'active'),
('abraham', 'lincon', 'active'),
('mick', 'smith', 'active'),
('jose', 'perez', 'inactive'),
('luis', 'nuñez', 'inactive'),
('ruben', 'puertas', 'inactive'),
('anders', 'stone', 'inactive'),
('luis', 'alvarez', 'deleted'),
('claudio', 'martinez', 'deleted'),
('morfeo', 'rodriguez', 'active'),
('onetys', 'estrada', 'inactive'),
('rene', 'fajardo', 'active');
INSERT INTO users (username, password, user_type, status) VALUES
('madi', 'madi', 'worker', 'active'),
('sana', 'sana', 'worker', 'active'),
('abli', 'abli', 'worker', 'active'),
('mism', 'mism', 'worker', 'active'),
('jope', 'jope', 'worker', 'active'),
('lunu', 'lunu', 'worker', 'active'),
('rupu', 'rupu', 'worker', 'active'),
('anst', 'anst', 'worker', 'active'),
('lual', 'lual', 'worker', 'active'),
('clma', 'clma', 'worker', 'active');
Users.class:
@Entity
@Table(name = "users")
public class Users implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id", nullable = false)
private int userId;
@Column(name = "username")
private String username;
@Column(name = "password")
private String password;
@Column(name = "userType")
private String userType;
@Column(name = "status")
private String status;
@ManyToOne
@JoinColumn(name = "worker_id")
private Worker worker;
Worker.class:
@Entity
@Table(name = "worker")
public class Worker implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "worker_id")
private int workerId;
@Column(name = "name")
private String name;
@Column(name = "last_name")
private String lastName;
@Column(name = "status")
private String status;
@OneToMany(mappedBy = "worker", cascade = CascadeType.ALL)
private Collection<Users> users;
Так что мне нужно:
1: Создать другую сущность, чтобы иметь возможность создать новую таблицу в базе данных, содержащую внешние ключи для пользователей и рабочих сущностей?
2: Можно ли это сделать с помощью скрипта в data.sql.
Я бы создал столбец в таблице пользователей, ссылающийся на идентификатор работника, но задача явно говорит:
"создайте третий стол, чтобы сохранить отношения"
Заранее спасибо