Я пытаюсь выучить JPA, и у меня возникла проблема, с которой я столкнулся уже 2 дня.
У меня есть таблица с именем «Пользователь», содержащая идентификатор, электронную почту, пароль, имя пользователя и статус.
Как вы думаете, столбцы электронной почты и имени пользователя уникальны.
У меня также есть класс с именем User что-то вроде этого:
@Entity
@Table(name = "user", uniqueConstraints = @UniqueConstraint(columnNames = {"username", "email"}))
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@Column(name="email", nullable=false)
private String email;
@Column(name="password", nullable=false)
private String password;
@Column(name="username", nullable=false)
private String username;
@Column(name="status", nullable=false)
private String status;
Остальная часть этого класса - геттеры и сеттеры.
Я пытаюсь вставить значение с помощью JPA с Hibernate.
try {
em = jpaResourceBean.getEMF().createEntityManager();
em.getTransaction().begin();
user.setStatus(UserStatus.PENDING.toString());
em.persist(user);
em.getTransaction().commit();
logger.info("User " + user.getUsername() + " has been registered");
// Attention starts
} catch (XXXXXX) {
if (XXXXX.getYYY().equals("ZZZZZ")) logger.info("User name is already exist");
if (XXXXX.getMMM().equals("LLLLL")) logger.info("Email is already exist");
}
// Attention end
Все, что я хочу знать: как я могу понять, это проблема ограничения имени пользователя или ограничения уникальности электронной почты? Хотя вы можете проверить мой начальный и конечный блок Внимание, я уверен, что вы поняли мою точку зрения:)
Заранее спасибо.