1

テーブル sales_2009 sales_2008 sales_2007

そして、1 つのクラス (sales) のみ、実行時にテーブルをどのように変更しますか?

4

2 に答える 2

2

実行時にテーブルをどのように変更しますか?

これは、標準の JPA ではそのままではサポートされていません。ただし、実装により、水平パーティショニングの拡張機能が提供される場合があります。

Slice の成熟度については何も言えません。

別の解決策は、3 つの異なる持続性ユニットを定義し、Salesエンティティをそれぞれに具体的にマップすることです (おそらく XML マッピングを使用して Java コードを再利用します)。そしてEntityManager、適切な から「権利」を取得しますEntityManagerFactory。ただし、このソリューションはメモリの観点からは理想的ではありません (その他の制限もあります)。

こちらもご覧ください

于 2010-08-06T14:32:08.417 に答える
0

返信ありがとう、私は解決しました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は機能していません。

于 2010-08-09T14:39:09.550 に答える