gpt4 book ai didi

java - 是否有必要为每个实体创建一个存储库和一个服务?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:25:03 26 4
gpt4 key购买 nike

<分区>

我正在使用 Hibernate+Spring 和数据库来保存我的实体。我已经在使用 JpaRepository创建我的存储库,但即便如此,我似乎必须为每个实体创建一个扩展 JpaRepository 的接口(interface)。最糟糕的是,我正在为每个实体创建一项服务。他们都非常相似。

有什么方法可以创建通用服务和通用存储库?真的有必要实现每一项吗?

目前,我有这样的存储库:

@Repository
public interface PhaseRepository extends JpaRepository<Phase, Serializable> {

}

和这样的服务:

@Service
public class PhaseService {
@Autowired
PhaseRepository repository;

@Transactional
public Phase create(Phase entity) {
return repository.save(entity);
}

@Transactional(rollbackFor = EntityNotFound.class)
public Phase delete(int id) throws EntityNotFound {
Phase deleted = repository.findOne(id);
if (deleted == null) {
throw new EntityNotFound();
}
repository.delete(deleted);
return deleted;
}

@Transactional(rollbackFor = EntityNotFound.class)
public Phase update(Phase entity) throws EntityNotFound {
Phase updated = repository.findOne(entity.getId());

if (updated == null) {
throw new EntityNotFound();
}

repository.saveAndFlush(entity);
return updated;
}

public Phase findById(int id) throws EntityNotFound {
Phase entity = repository.findOne(id);

if (entity == null) {
throw new EntityNotFound();
}

return entity;
}
}

我使用了 12 个实体,每个实体都有相同的服务方法。

谢谢!

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com