java捕获唯一约束异常_java – 捕获JPA上唯一约束的原因

我正在努力学习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

我只想知道:我如何理解用户名约束或电子邮件唯一约束的问题?虽然你可以检查我的注意开始和结束块,但我相信你明白我的意思:)

提前致谢.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值