Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何查明jpa spring是否已经存在电子邮件,并向前端发送一些错误消息_Java_Spring_Hibernate_Spring Mvc_Jpa - Fatal编程技术网

Java 如何查明jpa spring是否已经存在电子邮件,并向前端发送一些错误消息

Java 如何查明jpa spring是否已经存在电子邮件,并向前端发送一些错误消息,java,spring,hibernate,spring-mvc,jpa,Java,Spring,Hibernate,Spring Mvc,Jpa,所以我有一个简单的UsersDao public interface UserDao extends JpaRepository<User, Long> { } 关于这个话题,我还有一些额外的问题: 有些不清楚的事情正在发生。我已经做了一个关于jpa的小教程,但他们使用了: 实体管理器, 实体事务 注意:使用EntityManagerFactory时,如下所示: EntityManagerFactory emf = null, //Then they use E

所以我有一个简单的UsersDao

public interface UserDao extends JpaRepository<User, Long> {

}
关于这个话题,我还有一些额外的问题:

有些不清楚的事情正在发生。我已经做了一个关于jpa的小教程,但他们使用了:

实体管理器, 实体事务

注意:使用EntityManagerFactory时,如下所示:

    EntityManagerFactory emf = null,

    //Then they use EntityManagerFactory

        emf = Persistence.createEntityManagerFactory("SomeValue")
    //where can i get "someValue" When using application .properties 

//because in the example they use xml but can't find the right properties in application.properties
或者我不需要在springboot中使用这些

很抱歉问了这么多问题。我真的很想进入春天,但现在有些事情还不太清楚;)

您有两种选择:

  • 使用方法
    User findByEmail(字符串电子邮件)在存储库界面中
  • 使用类似的方法
    @Query(“从用户u中选择COUNT(u.id),其中u.email=:email)Long
    countUsersWithEmail(字符串电子邮件);
    很明显,如何使用这些查询的结果。由于开销较小,我会使用第二选择

  • 您可以执行以下操作:

    假设
    User
    具有属性
    email
    ,在界面中定义如下方法以生成动态查询:

    public interface UserDao extends JpaRepository<User, Long> {
        public User findByEmail(String email);
    }
    

    您好,我尝试了您所说的,但是@column unique true不起作用,我仍然可以通过电子邮件添加多个用户。出于某种原因,如果我执行类似于User user1=userDao.findByEmail(User.getEmail());if(user1.getEmail().equals(User.getEmail())的操作我得到了NullPointerException任何方法的想法OK我得到了它的工作,但由于某些原因unique=true不起作用,我必须在数据库中捕获它对于NullPointerException,在检查电子邮件相等性之前检查user1是否为null。@Column注释是生成ddl的指令。如果您没有自动生成如果禁用ddl,则它将不起作用。从技术上讲,存在竞争条件。最好尝试通过电子邮件保存用户并捕获唯一的密钥冲突
    findUserByEmail
    如果该电子邮件已经存在,则将抛出
    ununiqueresultexception
    异常
    public interface UserDao extends JpaRepository<User, Long> {
        public User findByEmail(String email);
    }
    
    public class User {
    
        ....
    
        @Column(unique=true)
        String email;
    
    }