Java/JPA - 动态设置对象/实体的属性

标签 java hibernate jpa playframework

我是 Java 的新手,如果有任何帮助,我将不胜感激!

我有一个充满这样产品的 XML 文件:

<product>
    <title>Product Title</title>
    <colour>Red</colour>
</product>

我有一个像这样的 JPA 实体:

@Entity
public Product extends Model {

    public String title;
    public String colour;

}

我可以像这样愉快地将 XML 解析为我的 JPA 对象:

public void parseElement(String elementName, String elementValue) {
    if (elementName == "title") {
        product.title = elementValue;
    }
    else if (elementName == "colour") {
        product.colour = elementValue;
    }
}

但是问题是每个产品有超过 50 个字段,而不仅仅是这两个。我可以写一个 50 多个子句的 if-else 语句,但我认为首先在这里检查更好的替代方案是值得的!

由于 XML 元素名称与 Product 类中的属性名称直接匹配,所以我认为这样的事情会很完美:

public void parseElement(String elementName, String elementValue) {
    product[elementName] = elementValue;
}

但是 Java 不喜欢这种表示法。我还能做些什么来获得类似的结果,还是我必须接受它并编写一个 collosal if-else 语句?

如有任何帮助,我们将不胜感激。

干杯!

最佳答案

Java 知道很多用于 XML 处理的框架。还有一些用于将对象序列化/反序列化为 xml 的库。我建议看看 JAXB .

关于Java/JPA - 动态设置对象/实体的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9892122/

相关文章:

java - Spring Data Jpa 一对多关系。无法插入子记录 : foreign key is coming as NULL

java - JPA - 为什么我在数据库中的每一行看到两个实体实例?

java - jackson ,读/写嵌套属性

java - hibernate4简单的级联持久不起作用

java - 用退格键替换换行符到上一行

java - 我正在使用 ManyToOne , OneToMany 并且在获取数据时有无限循环

java - hibernate无法获取下一个序列值

java - JPA 标准 Updatequery 并未真正更新任何内容

java - Eclipse 一直告诉我删除 arraylist 的 Final 修饰符

mysql - xml Hibernate 映射,具有复合 id 和不同列名的多对一