在处理非规范化(遗留)数据库表时,您有如下列:
price_1, price_2, price_3, ..., price_10
将此类列映射到 java 集合(例如 List)而不是将它们映射到相应的 price1、price2、... 属性的最有效和最干净的方法是什么。
有没有一种不涉及 UserTypes 的简单方法。
我说的是驻留在同一张表上的列,而不是多个实体之间通常的一对多关系。
在这种情况下,我以前做过一次是创建一个类来封装价格,比如
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 类对其余代码隐藏实际结构。您可以将所有价格作为一个集合或单独或任何合适的方式访问。