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

Chr*_*ugh 2 java hibernate jpa playframework

我对Java比较陌生,对此有所帮助!

我有一个XML文件,里面装满了这样的产品:

<product>
    <title>Product Title</title>
    <colour>Red</colour>
</product>
Run Code Online (Sandbox Code Playgroud)

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

@Entity
public Product extends Model {

    public String title;
    public String colour;

}
Run Code Online (Sandbox Code Playgroud)

我可以愉快地将XML解析为我的JPA对象,如下所示:

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

问题是每个产品有50多个字段,而不仅仅是两个字段.我可以写一个50+条款if-else语句,但是认为首先要检查更好的替代方案是值得的!

由于XML元素名称与Product类中的属性名称直接匹配,我认为这样的东西是完美的:

public void parseElement(String elementName, String elementValue) {
    product[elementName] = elementValue;
}
Run Code Online (Sandbox Code Playgroud)

但Java并不喜欢这种符号.还有什么我可以做的,可以达到类似的结果,或者我必须把它吸干并写一个collosal if-else语句?

任何帮助将不胜感激.

干杯!

mag*_*omi 5

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