2017-03-29 78 views
0

我想构建一个应用程序,我使用相同的Hibernate对象,但使用多个Hibernate属性文件。例如,人1可能只想在表1的列1-3,而人要2上表1如何使用多个休眠属性文件进行延迟加载?

列1,5-6如何动态地加载不同的配置(如果人1是使用应用或人2)取决于用户?这可能吗?

谢谢!

回答

0

为此,您不需要不同的映射文件。您可以在代码级别处理此问题。您可以在项目中引入对象到实体,反之亦然。

根据哪些用户登录您只能获取/设置这些字段。

对于前:

if (user.equals(user1)) { 
     domainObj.setColumn1(entityObject.getColumbn1); 
     domainObj.setColumn2(entityObject.getColumbn2); 
     domainObj.setColumn3(entityObject.getColumbn2); 

    } 

    if (user.equals(user2)) { 
     domainObj.setColumn1(entityObject.getColumbn1); 
     domainObj.setColumn2(entityObject.getColumbn2); 
     domainObj.setColumn3(entityObject.getColumbn3); 
     domainObj.setColumn4(entityObject.getColumbn4); 
     domainObj.setColumn5(entityObject.getColumbn5); 
    } 
+0

如果我不想创建自定义domainObj除非是同一个?即使它是相同的,我可以不做手动映射吗?它不能自动映射吗?因为遵循你的建议,我会需要每个用户的setter。 – shaselai

+0

您的dominObj(DTO)只是实体的副本。您可以为所有类型的用户使用相同的域Obj。我的建议只是将你正在考虑的“各种hibernate映射”移动到代码中。可以有一种方法来在Hibernate中维护不同的映射文件。 – yogidilip

+0

对于每类用户,您都需要以上逻辑。 – yogidilip