提问者:小点点

使用 Spring JPA 的自定义 sql 语句


我正在尝试将一条记录插入到名为 user 的表中。我尝试排除故障的方法是插入新用户,它位于我的类UserRepositoryCustom中。我正在使用JPARepositoryEntityManger来完成此操作。我仍然无法将用户插入到表中。任何这方面的帮助将不胜感激。

UserRepositoryImpl

public class UserRepositoryImpl implements UserRepositoryCustom {
    
    @PersistenceContext
    private EntityManager entityManager;
    
    public void insertNewUser(User user) {
        entityManager.createNativeQuery("INSERT INTO user (username,password) VALUES (?,?)")
        .setParameter(1,user.getUserName())
        .setParameter(2,user.getPassword());
    }
}

用户存储库自定义

public interface UserRepositoryCustom {
    public void insertNewUser(User user);
}

用户存储库

@Repository
public interface UserRepository extends JpaRepository<User, Integer>, UserRepositoryCustom {
    User findById(int id);
    User findByUserName(String userName);
        
}

共1个答案

匿名用户

问题是我没有在服务类的构造器上使用@Autowired来注入存储库 bean。当我调用存储库 bean 方法时,没有任何反应。本质上,存储库 bean 只是空对象。