我正在努力学习JPA,我有一个问题,我在2天后就陷入了困境.
我有一个名为“用户”的表包括ID,电子邮件,密码,用户名和状态.
您猜测电子邮件和用户名列是唯一的.
我还有一个名为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;
本课程的其余部分是getter和setter.
我试图通过使用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
我只想知道:我如何理解用户名约束或电子邮件唯一约束的问题?虽然你可以检查我的注意开始和结束块,但我相信你明白我的意思:)
提前致谢.