将遗留数据库表中的多个列映射到hibernate中的(java)列表?

时间:2012-10-15 15:08:44

标签: java hibernate

在处理非规范化(遗留)数据库表时,您可以使用以下列:

price_1,price_2,price_3,...,price_10

将这些列映射到java集合(例如List)的最有效和最干净的方法是什么,而不是将它们映射到相应的price1,price2,...属性。

是否有一种不涉及UserTypes的简单方法。

我说的是位于同一个表上的列,而不是多个实体之间通常的一对多关系。

1 个答案:

答案 0 :(得分:0)

在这种情况下我曾经做过的就是创建一个类来封装价格,比如

public class Prices {
    Integer price_1;
    Integer price_2;

    public List<Integer> getAllPrices() {
        List<Integer> allPrices = new ArrayList<Integer>();
        allPricess.add(price_1);
        allPrices.add(price_2);
        return allPrices;
    }
    public Integer getPrice(int priceNumber) {
        if (priceNumber == 1) {
            return price_1;
        }
        // etc...
    }
}

然后将表中的列映射到各个字段,并使用Java类从其余代码中隐藏实际结构。您可以将所有价格作为集合或单独或任何合适的价格访问。