У меня есть 3 сущности: Customer
, User
и VerificationEmail
.
Между ними зависимость @OneToOne
(bidirectional). Зависимость @OneToOne
работает только с Customer -- User
. Теперь я пытаюсь добавить зависимость Customer -- VerificationEmail
, но я фейлюсь. Идея такова, что id VerificationEmail должен быть зависим от id Customer. То есть при сохранении объекта Customer
, id у User
, VerificationEmail
должен наследоваться от Customer
.
Customer.java:
@Table(name = "customer")
public class Customer {
@Id
@GeneratedValue
@Column(name = "id")
private long id;
@Column(name = "name")
@NotEmpty(message = "*Please provide your name")
private String name;
@Column(name = "surname")
@NotEmpty(message = "*Please provide your surname")
private String surname;
@OneToOne
@MapsId
@JoinColumn (name="customer_id")
private User user;
@OneToOne
@MapsId
VerificationEmail verificationEmail;
}
User.java:
@Table(name = "user")
public class User {
@Id
@GeneratedValue
@Column(name = "user_id")
private long id;
@Column(name = "email")
private String email;
@Column(name = "password")
@NotEmpty(message = "*Please provide your password")
private String password;
@OneToOne
private Customer customer;
}
VerificationEmail:
@Table(name = "email_verif")
public class VerificationEmail {
@Id
@GeneratedValue
private Long id;
@OneToOne(mappedBy = "email_verif", cascade = CascadeType.ALL,
fetch = FetchType.LAZY, optional = false)
private Customer customer;
@Column
private String token;
}
Попробуйте так:
Customer.java:
@Table(name = "customer")
public class Customer {
@Id
@GeneratedValue
@Column(name = "id")
private long id;
@Column(name = "name")
@NotEmpty(message = "*Please provide your name")
private String name;
@Column(name = "surname")
@NotEmpty(message = "*Please provide your surname")
private String surname;
@OneToOne
@JoinColumn(name="userId")
private User user;
@OneToOne
@JoinColumn(name="verificationEmailId")
private VerificationEmail verificationEmail;
}
User.java:
@Table(name = "user")
public class User {
@Id
@GeneratedValue
@Column(name = "user_id")
private long id;
@Column(name = "email")
private String email;
@Column(name = "password")
@NotEmpty(message = "*Please provide your password")
private String password;
@OneToOne(mappedBy = "user")
private Customer customer;
}
VerificationEmail:
@Table(name = "email_verif")
public class VerificationEmail {
@Id
@GeneratedValue
private Long id;
@Column
private String token;
@OneToOne(mappedBy = "verificationEmail")
private Customer customer;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня есть простой север на Spring`е, что должен обрабатывать GET, PUT и POST запросы, и работать с БД соответственноС GET никаких проблем нет, и приложение...
При генерации csv файла и последующем его открытии в excel получаю ошибкуРешить ее удалось добавив в первую ячейку первым символом пробел
Смотрю картинку про хэш‑таблицу и вижу такое слово: bucketsПосоветуйте что это такое и для чего?
А где принято хранить настройки подключения к БД (путь, логин, пароль) в Java программах?