我有以下使用spring data jpa
和hibernate
来获取mysql
数据库的创建服务方法:
@Transactional
fun create(dto: MissionDocumentType): MissionDocumentType {
// retrieve rank on existing entities
val rank = missionDocumentTypeRepository.countByCategoryCode(dto.code).toInt()
// save new entity
return missionDocumentTypeRepository.save(
MissionDocumentTypeEntity(
rank = rank,
// ...other fields from dto
)
).toDto()
}
检索到的rank
值计算尚未保存的实体。休眠会话似乎已经在第一条指令中知道了新实体。
对吗?如果没有,您能解释为什么吗?如果是,如何在不计算尚不存在的实体的情况下检索排名?