我有一个模型:
public class ABC implements Serializable {
private int baseId;
private Integer aId;
private Integer bId;
private Boolean isReal;
private TimeStamp updateTime;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "base_id", nullable = false)
public int getBaseId() {
return baseId;
}
public void setBaseId(int baseId) {
this.baseId = baseId;
}
@Basic
@Column(name = "a_id", nullable = false)
public Integer getAId() {
return aId;
}
public void setAId(Integer aId) {
this.aId = aId;
}
@Basic
@Column(name = "b_id", nullable = false)
public Integer getBId() {
return bId;
}
public void setBId(Integer bId) {
this.bId = bId;
}
@Basic
@Column(name = "is_real")
public Boolean getIsReal() {
return isReal;
}
public void setIsReal(Boolean isReal) {
this.isReal = isReal;
}
@Basic
@Column(name ="update_time")
public Timestamp getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Timestamp updateTime) {
this.updateTime = updateTime;
}
}
我有一个控制器类:
@RestController
@RequestMapping(path = "${serverconfig.api-base-path}/base")
public class BaseController {
/**
* Instance of an logger
*/
private static final Logger LOG =
LoggerFactory.getLogger(BaseController.class);
/**
* Base repository
*/
private BaseRepository baseRepository;
/***
*
* @param baseRepository
*/
public BaseController(BaseRepository baseRepository) {
LOG.trace("BaseRepository constructor method.");
this.baseRepository = baseRepository;
}
@PostMapping(path = Route.UPDATE_IS_REAL)
// @Transactional
public ABC updateIsReal(@Valid @RequestBody
@RequestParam("baseId") int baseId,
@RequestParam("isReal") boolean isReal){
ABC abc = baseRepository.findByBaseId(baseId);
Date date= new Date();
Timestamp ts = new Timestamp(date.getTime());
abc.setBaseId(baseId);
abc.setIsReal(isReal);
abc.setUpdateTime(ts);
return baseRepository.save(abc);
}
}
我的存储库类:
@Repository
public interface BaseRepository extends
JpaRepository<ABC, Integer> {
List<ABC> findByAId(Integer aId);
ABC findByBaseId(Integer baseId);
}
数据库表有一个条目:
"base_id": 1,
"a_Id": 1,
"b_Id": 1,
"is_real": null,
"update_time": null
当我调用端点时,它不会给出错误并返回:
"base_id": 1,
"aId": 1,
"bId": 1,
"isReal": yes,
"updateTime": 018-10-01T18:30:56.765+0000
但是当我查询数据库时,记录不会在那里更新。我不明白我做错了什么。当我尝试进行rest调用时,我提供了一个id,并且该id存在于数据库中。
2条答案
按热度按时间jvidinwx1#
与
save
,在发出flush或commit命令之前,不需要立即将更改刷新到db,并且可能只保留在内存中。与
saveAndFlush
,更改将立即刷新到数据库。但是,如果刷新事务中的更改而不提交它们,则在该事务中提交之前,外部事务仍然看不到这些更改。
在basecontroller中尝试更改
到
更多信息请点击这里和这里
brtdzjyr2#
如果有人出于同样的原因来到这里,却没有找到答案……:
你有没有检查一下你有没有下列设备?也许整个模式可能正在被重新创建?
spring.jpa.hibernate.ddl auto=创建