java - JPA 映射接口(interface)

标签 java hibernate orm jpa interface

当 List 类型是接口(interface)时,我无法创建映射。看起来我需要创建一个抽象类并使用鉴别器列是这种情况吗?我宁愿不必,因为抽象类将只包含一个抽象方法,我宁愿只保留接口(interface)。

我有一个界面,我们可以称它为 Account

public interface Account {
 public void doStuff();
}

现在我有两个 Account 的具体实现者 OverSeasAccount 和 OverDrawnAccount

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

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

我有一个名为 Work with a List 的类(class)

private List<Account> accounts; 

我正在查看鉴别器字段,但我似乎只能对抽象类执行此操作。是这样吗?任何指针表示赞赏。我可以为接口(interface)使用鉴别器吗?

最佳答案

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

This问题讨论更多。它似乎以关于如何使用注释来完成的建议结束,所以谁知道呢。我建议 xml 现在仍然更安全这 page的文档解释了所需的 xml 映射。

关于java - JPA 映射接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/281503/

相关文章:

java - 使用 Hibernate 加载整个数据库

orm - 在 Controller 上捕获 Doctrine 异常

java - 如何克隆 JPA 实体

java - 如何解决 "Spring Cloud LoadBalancer is currently working with the default cache. You can switch to using Caffeine cache' 警告?

java - 使用 Ant 仅运行特定的 JUnit 测试

java - 从我的 Restful Web 服务返回 java.util.List 还是 java.util.Collection 更好?

java - Cassandra 的一致性

java - Hibernate @OneToMany 和 @ManyToOne 双向关联中缺少列错误

java - NonUniqueDiscoveredSqlAliasException : Encountered a duplicated sql alias [ASC_ID] during auto-discovery of a native-sql query

node.js - Sequelize 一对多查询(包含)产生 Y 与 X 无关