gpt4 book ai didi

java - 为什么JPA中有这么多接口(interface)?

转载 作者:行者123 更新时间:2023-12-02 00:34:28 25 4
gpt4 key购买 nike

查看一些 JPA 代码,我发现:

public interface Dao<T extends DomainObject>

public interface EventDao extends Dao<Event> - nothing added to Dao<Event>

public abstract class AbstractDaoJPAImpl<T extends DomainObject> extends JpaDaoSupport implements Dao<T>

public class EventDaoJPAImp extends AbstractDaoJPAImpl<Event> implements EventDao

为什么需要这两个接口(interface)?为什么不简单地拥有

public abstract class AbstractDao<T extends DomainObject> extends JpaDaoSupport

public class EventDao extends AbstractDaoJPAImpl<Event>

我来自 Ruby on Rails 世界,那里的事情似乎更简单。我确信这种 Java 方法有很多优点。我经常能识别出何时应该使用接口(interface),但有时我感觉 Java 开发人员对接口(interface)很着迷。

最佳答案

JPA 不需要这些接口(interface)。

在 JPA 中您唯一需要的是实体定义,包括映射到数据库的注释。就是这样。管理数据库连接和实体存储的 EntityManager 已经由 JPA 编写,您不需要所有这些接口(interface)和类。

它们可能是由开发人员编写的,他们认为这会分离数据库层(以及 JPA 为您提供的 EntityManager)和应用程序的任何其他层。

如果这是好事还是坏事那就是另一个话题了......

关于java - 为什么JPA中有这么多接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8186182/

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