tdi*_*mig 3 java spring persistence hibernate
我想这只适用于Hibernate(我现在才开始使用这两个框架).我有一个跟踪用户会话的应用程序.会话处于活动状态时,会话实体存储在活动会话的表中.当用户离线并且会话结束时,会话将移至辅助历史表.
如何使用Hibernate实现这一目标?现在我有一个Session.hbm.xml文件,它将Session对象映射到活动会话表.我可以将它映射到辅助表,并以某种方式指定在调用saveOrUpdate时我希望它保留在哪个表中吗?
我目前的声誉不允许我快速回答我自己的问题.我不希望任何人浪费时间在这上面,因为我找到了答案,所以我在这里作为编辑发布.
我可以通过在映射文件中使用entity-name属性来完成此操作.我创建了第二个映射,与Session.hbm.xml相同,名为HistoricalSession.hbm.xml.在这个新的映射文件中,我引用了相同的Session类,但是添加:
entity-name="HistoricalSession"
然后我像往常一样将对象映射到我的第二个(历史)表.调用save()或saveOrUpdate()默认使用classname作为实体名称,并像以前一样保存在我的主表中.现在,当我想将会话保存到历史表时,我使用允许您指定实体名称的Hibernate API覆盖:
saveOrUpdate("HistoricalSession",session);
这完全符合我的要求,而无需为历史会话创建另一个Java类
我可以通过在映射文件中使用entity-name属性来完成此操作.我创建了第二个映射,与Session.hbm.xml相同,名为HistoricalSession.hbm.xml.在这个新的映射文件中,我引用了相同的Session类,但是添加:
entity-name="HistoricalSession"
然后我像往常一样将对象映射到我的第二个(历史)表.调用save()或saveOrUpdate()默认使用classname作为实体名称,并像以前一样保存在我的主表中.现在,当我想将会话保存到历史表时,我使用允许您指定实体名称的Hibernate API覆盖:
saveOrUpdate("HistoricalSession",session);
这完全符合我的要求,而无需为历史会话创建另一个Java类
| 归档时间: | 
 | 
| 查看次数: | 1960 次 | 
| 最近记录: |