表 sales_2009 sales_2008 sales_2007
只有一个类(销售),如何在运行时更改表?
答案 0 :(得分:2)
如何在运行时更改表格?
标准JPA不支持开箱即用。但实施可能会为Horizontal partitioning提供扩展程序:
我对Slice的成熟度一无所知。
另一种解决方案是定义三个不同的持久性单元,并在每个实体中专门映射Sales
实体(可能使用XML映射来重用Java代码)。然后,从相应的EntityManager
获取“正确的”EntityManagerFactory
。从内存的角度来看,这个解决方案并不理想(加上一些其他限制)。
答案 1 :(得分:0)
感谢您的回复,我解决了iBATIS
在文件映射(xml)中
select * from $table$ where date = #date# and product_id = #product_id#
*在Java文件中 - 使用Servlet的例子: -
Map parameter = new HashMap();
parameter.put("table", "sales2009");
parameter.put("date", "2009-10-08"); //MySQL date :)
parameter.put("product_id",17);
SqlMapClient sqlMap = (SqlMapClient) getServletContext().getAttribute("sqlMap");
List result = sqlMap.queryForList("selectSalesByParameters",parameter);
for(Sales s : result) { }
重要提示: $table$ != #table
无效。