代码之家  ›  专栏  ›  技术社区  ›  Paul Whelan

JPA映射接口

  •  3
  • Paul Whelan  · 技术社区  · 17 年前

    我有一个接口让我们称之为帐户

    public interface Account {
     public void doStuff();
    }
    

    现在我有两个具体的Account实现者 超期帐户和透支帐户

    public class OverSeasAccount implements Account {
     public void doStuff() {
       //do overseas type stuff
     }
    }
    

    public class OverDrawnAccount implements Account {
     public void doStuff() {
       //do overDrawn type stuff
     }
    }
    

    我有一门课叫“列表工作”

    private List<Account> accounts; 
    

    2 回复  |  直到 17 年前
        1
  •  2
  •   Vincent Ramdhanie    17 年前

    我认为可以使接口成为映射的超类型。但是,您可能无法使用注释。注释与xml配置文件配合得很好,因此您可能必须使用所需的映射将hibernate配置文件添加到项目中。但是您将能够在项目的其余部分保留注释。

    This 这个问题讨论得更多。它似乎以一个关于如何使用注释的建议结束,所以谁知道呢。我认为xml目前仍然更安全 page

        2
  •  0
  •   Andrea Francia    17 年前

    也可以在不删除接口的情况下引入抽象类。

    // not an entity
    public interface Account {
        public void doStuff();
    }
    
    @Entity
    public abstract class BaseAccount {
        public void doStuff();
    }
    
    
    @Entity
    public class OverSeasAccount extends AbstractAccount {
        public void doStuff() { ... }
    }
    
    @Entity
    public class OverDrawnAccount extends AbstractAccount {
        public void doStuff() { ... }
    }