java - 无法使用地图数据保存到数据库
问题描述
在我的应用程序中,我从 DB 获取 Status 对象并将其设置在 User 对象中,最后将 User 保存到数据库中:
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 中使用它,我对此并不陌生。
解决方案
推荐阅读
- haskell - 使用 optparse-applicative 制作“可选”解析器并为递归数据类型构造值
- python - 如何将宝藏数据查询的结果放入熊猫数据框中?
- php - 如何调试 Codeigniter 4
- python - 在python中如何将str从其他类输出到pyqt textBrowser
- reactjs - 无法在 tabNavigator 中显示自定义标题
- angular - 有没有办法加载`
`在另一个` `? - android - android - ConstraintLayout:同时使用 DimensionRatio 和 Height_min
- c# - “添加选项
当“services.AddTransient”时,.Configure()“不起作用 ,ConfigureTOptions>()" 呢? - api - 如何从 MSTeams 获取 userID、tenantID 和 serviceURL?
- django - 如何使用模型字段值创建多选复选框?