JPA - 在运行时更改表
表格 销售_2009 销售_2008 sales_2007
并且只有一个类(销售),如何在运行时更改表?
Tables
sales_2009
sales_2008
sales_2007
And only one class (sales), How change the table at runtime?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
标准 JPA 不支持开箱即用。但实现可能会提供水平分区的扩展:
对于Slice的成熟度我无话可说。
另一种解决方案是定义三个不同的持久性单元,并在每个单元中专门映射 Sales 实体(可能使用 XML 映射来重用 Java 代码)。然后,从适当的 EntityManagerFactory 获取“正确的”EntityManager。但从内存的角度来看,这个解决方案并不理想(加上一些其他限制)。
另请参阅
That's not supported out-of-the-box by standard JPA. But implementation might provide extensions for Horizontal partitioning:
I can't say anything about the maturity of Slice.
An alternative solution would be to define three different persistence units and to map the
Sales
entity specifically in each of them (possibly using XML mappings to reuse the Java code). And then, obtain the "right"EntityManager
from the appropriateEntityManagerFactory
. This solution is not ideal from a memory point of view though (plus some other limitations).See also
感谢您的回复,我用
iBATIS
在文件映射(xml)中解决了
select * from $table$ where date = #date# and Product_id = #product_id#
*在文件 Java 中 - 使用 Servlet 的示例:-
重要:
$table $ != #table
不起作用。Thanks for the reply, I solved with
iBATIS
In the file map (xml)
select * from $table$ where date = #date# and product_id = #product_id#
*In the file Java - example with Servlet:-
Important:
$table$ != #table
is not working.