Java 使用hibernate防止列中的重复条目

Java 使用hibernate防止列中的重复条目,java,mysql,hibernate,jpa,Java,Mysql,Hibernate,Jpa,我正在尝试使用web服务、hibernate和MySql为我的应用程序创建一个登录系统。我正在尝试为用户提供的电话号码和电子邮件id创建一个单独的列。我希望我的系统能够使用这两个可用选项,我的意思是,我的登录系统应该适用于电子邮件id和电话号码。如果我的用户想要使用电话号码或电子邮件id登录,这两种方法都应该有效。但我不知道如何使它们都是唯一的,以防止重复条目。如果我使用主键,则只对一列有效。我希望它们在每个用户注册时都是唯一的。如果我理解您的要求,我想您可以使用以下注释对这两个属性进行注释:

我正在尝试使用web服务、hibernate和MySql为我的应用程序创建一个登录系统。我正在尝试为用户提供的电话号码和电子邮件id创建一个单独的列。我希望我的系统能够使用这两个可用选项,我的意思是,我的登录系统应该适用于电子邮件id和电话号码。如果我的用户想要使用电话号码或电子邮件id登录,这两种方法都应该有效。但我不知道如何使它们都是唯一的,以防止重复条目。如果我使用主键,则只对一列有效。我希望它们在每个用户注册时都是唯一的。

如果我理解您的要求,我想您可以使用以下注释对这两个属性进行注释:

@列(unique=true)


它将使您的属性具有唯一性,因此您将确保数据不会重复。

我如何知道用户是否试图在数据库中插入任何重复条目。请看这篇文章,我的程序会抛出ConstraintViolationException,但我如何知道哪列会抛出该异常。您不会。在插入之前,您需要编写自己的验证来检查这一点。