abstract class Entity {}
class A extends Entity {}
...
然后,每个实体都有其自己的服务连接到数据库,并且每个服务具有相同的基类。
abstract class Service<E extends Entity> {} class ServiceA extends Service<A> {} ...
然后,每个实体都有其来自DTO的映射器,每个映射器也具有相同的基类。
abstract class Mapper<E extends Entity, U> {} class MapperA extends<A, ADTO> {} ...
最后每个实体都有自己的CRUD端点。
@Path("entity-a") class ResourceA { @Inject ServiceA service; @Inject MapperA mapper; @POST @Path("create") void create(ADTO dto) { A entity = mapper.map(dto); service.save(A); } } ...
现在我的代码看起来像是。我的问题是:是否有更好的方法通过CDI来实现这一目标?如果可以的话,应该如何正确处理?
P.S。我使用Java EE8。
因此,我建议您将EJB用于您的服务部分。这将使您进行交易,以更好地处理实体的CRUD。但是,我将继续使用CDI作为映射部分。实际上,映射与持久性无关,您不需要事务。