在我的应用程序中,我正在从数据库获取Status对象并将其设置为 用户对象,最后将用户另存为:
Status status = statusRepository.findOne(UserServiceConstants.STATUS_OPEN);
user.setStatus(status);
userRepository.save(user);
很好。但是由于状态码有限,我需要状态码 存储在地图中并在我需要的地方使用。为此,我在下面创建了 课。
@Configuration
public class StatusConfiguration {
@Autowired
StatusRepository statusRepository;
Map<Integer, Status> statusMap = new HashMap<Integer, Status>();
public Map<Integer, Status> getStatusMap() {
return statusMap;
}
public void setStatusMap(Map<Integer, Status> statusMap) {
this.statusMap = statusMap;
}
@PostConstruct
public void init(){
List<Status> statusList = new ArrayList<Status>();
statusList = statusRepository.findAll();
statusList.forEach(status -> {
statusMap.put(status.getStatusId(), status);
});
}
}
我可以在需要状态的班级自动接线 所以不要使用
Status status = statusRepository.findOne(UserServiceConstants.STATUS_OPEN);
user.setStatus(status);
userRepository.save(user);
我正在使用:
Status status = statusConfiguration.getStatusMap().get(UserServiceConstants.STATUS_OPEN);
user.setStatus(status);
userRepository.save(user);
但是我遇到错误:
org.springframework.dao.InvalidDataAccessApiUsageException: detached entity passed to persist: com.rawtrade.model.Status; nested exception is org.hibernate.PersistentObjectException: detached entity passed to persist: com.rawtrade.model.Status
请有人帮我。我在Spring Boot中使用这个