尝试保存数据时,Spring Data REST会出现异常

时间:2016-02-20 12:34:26

标签: spring spring-data

我刚开始使用Spring数据休息,所以即使这可能是一个非常基本的事情,如果有人能指出我犯的错误或指向正确的方向,我会很感激。

我有一个包含员工实体的EmployeeRepository。

public interface EmployeeRepository extends CrudRepository<Employee,Long>{

@Query("select emp from Employee emp where  emp.employeeId=?1")
Employee findById(String employeeId);
@Query("select emp from Employee emp where emp.officialEmailId = ?1")
Employee findByOfficialEmailId(String officialEmailId);
}

以下是员工实体迁移的一部分。

public class Employee extends AbstractAuditingEntity{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

@Version
private Long version;


@Size(min = 3, max = 30)
@NotBlank
@Column(unique=true,nullable=false)
private String employeeId;


@Size(min=3,max = 25)
@NotBlank
@Field(index=Index.YES, analyze=Analyze.NO, store=Store.YES)
private String lastName;

@Size(min=3,max = 25)
@Field(index=Index.YES, analyze=Analyze.NO, store=Store.YES)
@NotBlank
private String firstName;


@Size(min=3,max = 25)
@Field(index=Index.YES, analyze=Analyze.NO, store=Store.YES)
private String middleName;
}

在我的服务类中,我需要根据条件获取员工实体列表,并为所有这些设置公共属性。我尝试了它并且它不起作用所以我尝试了更简单的东西,我试图尝试将所有员工的中间名设置为公共值并将其保存到数据库。这是它的代码

@Transactional
public void tempFunction(){

    Iterable<Employee>  empList = employeeRepository.findAll();
    for(Employee e : empList){
        e.setMiddleName("newMiddleName");
        employeeRepository.save(e);

    }

}

我得到以下异常 2016-02-20 17:59:08.545 ERROR 533 --- [nio-8080-exec-1] oaccC [。[。[/]。[dispatcherServlet] ]:Servlet [dispatcherServlet]的Servlet.service()与path []的上下文引发异常[请求处理失败;嵌套异常是org.springframework.transaction.TransactionSystemException:无法提交JPA事务;嵌套异常是javax.persistence.RollbackException:使用根本原因提交事务时出错 java.lang.NullPointerException:null

堆栈跟踪显示了NullPointerException的根本原因,我知道在我从控制器或服务中调用此代码的地方附近不存在。如果我的代码中有任何错误,有人可以指出,提前谢谢。

0 个答案:

没有答案