JPA实体的JAXB工厂
|
在我以前的大多数项目中,我都有两个域模型,一个带有JAXB注释,另一个带有JPA注释。我知道它们可以合并为一个模型,并且在同一个类中具有两个注释,但是根据我的经验,总是会得出将这种方法分开的结论。单独方法的另一个优点是可以使用XSD创建JAXB类,并可以轻松地从其他项目链接到XSD中。
在大多数情况下,我需要工厂类能够灵活创建实体的JAXB表示形式,例如
public class UserFactory
{
public UserFactory(User queryUser, String lang)
{
this.queryUser=queryUser;
this.lang=lang;
}
public JaxbUser getUser(JpaUser jpaUser)
{
JaxbUser jaxbUser = new JaxbUser();
if(queryUser.isSetId()){jaxbUser.setId(jpaUser.getId());}
if(queryUser.isSetEmail()){jaxbUser.setEmail(jpaUser.getEmail());}
if(queryUser.isSetRoles())
{
RolesFactory f = new RolesFactory(queryUser.getRoles(),lang);
jaxbUser.setRoles(f.getRoles(jpaUser.getRoles()));
}
return jaxbUser;
}
}
我创建了一个带有单独模板with1ѭ和所需的lang
的UserFactory,以支持不同语言的实体。在针对特定字段或其他工厂的结果创建期间检查模板,并创建结果对象。查询是在XML文件中定义的,如下所示:
<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>
<query lang=\"en\">
<user id=\"1\">
<roles>
<role code=\"code\"/>
</roles>
</user>
</query>
尽管保留了两个域模型和工厂类的所有缺点,但通过这种方法,我拥有一个强大而灵活的工具来创建自定义XML。我知道有很多我从未听说过的可用框架或库,所以这里是我的问题:
是否有类似我的方法的可用方法?
没有找到相关结果
已邀请:
1 个回复
娜拐赐巫潭