【发布时间】:2018-11-04 06:17:26
【问题描述】:
我已经根据我的存储库和服务将一个数据保存在我的数据库中。我想通过仅更改播放器 ID 来使用邮递员保存另一个数据。但它不会创建新的实体数据。它会更新现有的实体数据.我的问题是如何在我的服务找到现有ID时更新数据。但是当它找到新ID时,它将新数据保存到数据库中。
这是我的仓库:
@Repository
@Transactional
public interface CricketPlayerRepository extends CrudRepository<CricketPlayer,String> {
Optional<CricketPlayer> findCricketPlayerByName(String name);
}
这是我的服务:
@Service
public class CricketPlayerService {
private CricketPlayerRepository cricketPlayerRepository;
public CricketPlayerService(CricketPlayerRepository cricketPlayerRepository) {
super();
this.cricketPlayerRepository = cricketPlayerRepository;
}
public CricketPlayerService() {
}
public Optional<CricketPlayer> getPlayerByName(String name){
return cricketPlayerRepository.findCricketPlayerByName(name);
}
public CricketPlayer save(CricketPlayer cricketPlayer){
Optional<CricketPlayer> id = cricketPlayerRepository.findById(cricketPlayer.getPlayerId());
if (id.isPresent()){
//code here
}
// if (entityManager.isNew(cricketPlayer)) {
// em.persist(cricketPlayer);
// return cricketPlayer;
// } else {
// return em.merge(cricketPlayer);
// }
return cricketPlayerRepository.save(cricketPlayer);
}
public Iterable<CricketPlayer> findAllPlayers() {
return cricketPlayerRepository.findAll();
}
public Optional<CricketPlayer> findPlayersById(String id) {
return cricketPlayerRepository.findById(id);
}
}
【问题讨论】:
-
那是一些文字的图片...?如果您认为这会有所帮助,也许您可以发布文本。
标签: java hibernate spring-boot spring-data-jpa crud