テーブル sales_2009 sales_2008 sales_2007
そして、1 つのクラス (sales) のみ、実行時にテーブルをどのように変更しますか?
実行時にテーブルをどのように変更しますか?
これは、標準の JPA ではそのままではサポートされていません。ただし、実装により、水平パーティショニングの拡張機能が提供される場合があります。
Slice の成熟度については何も言えません。
別の解決策は、3 つの異なる持続性ユニットを定義し、Sales
エンティティをそれぞれに具体的にマップすることです (おそらく XML マッピングを使用して Java コードを再利用します)。そしてEntityManager
、適切な から「権利」を取得しますEntityManagerFactory
。ただし、このソリューションはメモリの観点からは理想的ではありません (その他の制限もあります)。
返信ありがとう、私は解決しましたiBATIS
ファイル マップ (xml) 内
select * from $table$ where date = #date# and product_id = #product_id#
*ファイル Java - サーブレットの例:-
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
は機能していません。