Таблицы sales_2009 sales_2008 sales_2007
И только один класс (продажи), Как изменить таблицу во время выполнения?
Как изменить таблицу во время выполнения?
Это не поддерживается стандартным JPA "из коробки". Но реализация может предоставить расширения для горизонтального разделения :
Я ничего не могу сказать о зрелости Slice.
Альтернативным решением могло бы быть определение трех разных единиц сохраняемости и отображение объекта Sales
конкретно в каждом из них (возможно, с использованием сопоставлений XML для повторного использования кода Java). Затем получите «правильный» EntityManager
из соответствующего EntityManagerFactory
. Однако это решение не идеально с точки зрения памяти (плюс некоторые другие ограничения).
Спасибо за ответ, я решил с помощью 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
не работает.