我有AccountantRepository
班
@Repository("accountantRepository")
@Transactional
public interface AccountantRepository extends JpaRepository<Accountant, Long>
在AccountantServiceImpl
@Service("accountantService")
public class AccountantServiceImpl implements AccountantService{
@Autowired
private AccountantRepository accountantRepository;
@Override
public Accountant saveAccountant(Accountant newAccountant, String role) {
return accountantRepository.save(newAccountant);
}
}
当我这样做时accountantRepository.save(newAccountant);
如何获取新创建的记录的ID?
答案 0 :(得分:0)
使用JpaRepository.save()
返回的实例。它将包含id
值。
CrudRepository.save()
方法(声明save()
)指定:
将返回的实例用作进一步操作作为保存操作 可能已经完全改变了实体实例。
答案 1 :(得分:0)
您可以直接从实体本身获取ID。 newAccountant.getId()
(或曾经是字段)将在调用save方法后返回数据。
如下所示 -
@Override
public int saveAccountant(Accountant newAccountant, String role) {
accountantRepository.save(newAccountant);
return newAccountant.getId();
}
此引用将在hibernate会话中可用,而hibernate将id设置为persisited对象。