JPA - Изменить таблицу во время выполнения

Таблицы sales_2009 sales_2008 sales_2007

И только один класс (продажи), Как изменить таблицу во время выполнения?

1
задан Pascal Thivent 6 August 2010 в 13:36
поделиться

2 ответа

Как изменить таблицу во время выполнения?

Это не поддерживается стандартным JPA "из коробки". Но реализация может предоставить расширения для горизонтального разделения :

Я ничего не могу сказать о зрелости Slice.

Альтернативным решением могло бы быть определение трех разных единиц сохраняемости и отображение объекта Sales конкретно в каждом из них (возможно, с использованием сопоставлений XML для повторного использования кода Java). Затем получите «правильный» EntityManager из соответствующего EntityManagerFactory . Однако это решение не идеально с точки зрения памяти (плюс некоторые другие ограничения).

См. Также

2
ответ дан 2 September 2019 в 22:23
поделиться

Спасибо за ответ, я решил с помощью iBATIS

В карте файлов (xml)
выберите * из $ table $, где date = # date # и 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 не работает.

0
ответ дан 2 September 2019 в 22:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: