小编kai*_*boy的帖子

Java ORM:多个(接口)继承

我想使用一个Java的ORM框架将域模型映射到关系数据库.不幸的是,它们似乎都没有足够的支持实现多个接口的类.说我想要映射如下:

public interface Quotable {
}

public interface Tradable {
}

// StockIndex only implements Quotable as it cannot be trade directly
public class StockIndex implements Quotable {
}

// Stock implements both interfaces as there are market quotes and can be traded
public class Stock implements Quotable, Tradable {
}

public class Quote {
    private Quotable quotable;
}

public class Trade {
    private Tradable tradable;
}
Run Code Online (Sandbox Code Playgroud)

因此,我想要实现的是,报价可以引用任何报价(股票,股票指数和其他),而交易只能引用可交易实体.我已经尝试过OpenJPA和(普通)Hibernate没有运气,尽管后者对界面的支持看起来很有希望.

有没有可以处理我的场景的框架?或者有什么理由不应该映射到数据库吗?如果是这样,我的模型应该如何修改?

我最初的Hibernate映射看起来像这样(我没有显示任何OpenJPA的东西,因为它不支持接口继承或至少我无法弄清楚如何):

<hibernate-mapping package="com.foo">
    <class name="Quotable" table="quotable" >
        <id type="java.lang.Long" column="id">
            <generator …
Run Code Online (Sandbox Code Playgroud)

java orm interface multiple-inheritance

7
推荐指数
1
解决办法
1116
查看次数

标签 统计

interface ×1

java ×1

multiple-inheritance ×1

orm ×1