在运行时从配置文件创建和扩展JPA实体类

时间:2013-05-22 11:31:44

标签: java jpa jaxb

我有3个实体类和更多东西。我想创建一个工具,用户可以在其中创建新的实体类和/或向现有的3个实体类添加其他字段,包括JPA注释(例如,扩展它们)。该工具应使用某种文本格式(如xml)并从该配置文件生成类。

JAXB是否是正确的工具?

由于我对此完全陌生,有人可以指点我这个教程吗?请注意,我不想序列化对象,而是从xml文件创建新类。

2 个答案:

答案 0 :(得分:0)

如果你的工具可以使用xml,那么JAXB是生成java类的不错选择。 JAXB可以将xml转换为模式,然后生成类。这是一篇有用的文章,了解JAXB的工作原理,可以帮助您了解它如何解决您的问题:

http://www.javaworld.com/javaworld/jw-06-2006/jw-0626-jaxb.html

答案 1 :(得分:0)

注意:我是EclipseLink JAXB (MOXy)主管,是JAXB (JSR-222)专家组的成员。

EclipseLink JPA提供可扩展的实体,可以通过其XML映射文件添加。通过采用属性名称的通用get / set方法访问虚拟属性。

@Entity
@VirtualAccessMethods
public class Customer{

    // Real Properties

    ...

    // Code for Virtual Properties

    @Transient
    private Map<String, Object> extensions;

    public <T> T get(String name) {
        return (T) extentions.get(name);
    }

    public Object set(String name, Object value) {
        return extensions.put(name, value);
    }

}

了解更多信息