【发布时间】:2019-10-22 19:42:55
【问题描述】:
对不起,如果这是一个愚蠢的问题,我正在学习 JPA 和 REST。
我正在尝试设置一个 REST 服务,该服务接收带有 XML 的 POST 请求并写入单个表,但我被困在 XML 中的“子级别”。
这是我的服务接收到的“正常”XML(这确实有效):
<somexml>
<xmlid>1</xmlid>
<xmldesc>Test</xmltest>
<xmlclassif>04<xmlclassif>
<xmlbar>123456789</xmlbar>
<xmlsize>003</xmlsize>
<xmlres>1</xmlres>
</somexml>
这是我被卡住的“特殊”案例:
<somexml>
<xmlid>01</xmlid>
<xmldesc>Test</xmltest>
<xmlclassif>04<xmlclassif>
<xmlbars>
<xmlbarid>01</xmlbarid>
<xmlbar>00000000001</xmlbar>
</xmlbar>
<xmlbars>
<xmlbarid>01</xmlbarid>
<xmlbar>00000000002</xmlbar>
</xmlbar>
<xmlbars>
<xmlbarid>01</xmlbarid>
<xmlbar>00000000003</xmlbar>
</xmlbar>
<xmlbars>
<xmlbarid>01</xmlbarid>
<xmlbar>00000000004</xmlbar>
</xmlbar>
<xmlsize>003</xmlsize>
<xmlres>1</xmlres>
</somexml>
如果我收到一个“xmlbar”,我的服务按预期工作,但我不知道如何“读取”多个“xmlbars”并编写它们,示例有 4 个“xmlbars”,但可能更多.
我需要上例表中的以下数据: https://i.imgur.com/kX1RJdI.png
这是我的实体:
@Entity
@Table(name = "somexml")
@XmlRootElement
public class Somexml{
private Long xmlid;
private Long xmldesc;
private Long xmlclassif;
private Long xmlbar;
private Long xmlsize;
private Long xmlres;
public Somexml(Long xmlid, Long xmldesc, Long xmlclassif, Long xmlbar, Long xmlsize, Long xmlres) {
super();
}
public Somexml() {
super();
this.xmlid = xmlid;
this.xmldesc = xmldesc;
this.xmlclassif = xmlclassif;
this.xmlbar = xmlbar;
this.xmlsize = xmlsize;
this.xmlres= xmlres;
}
... getters and setters
存储库
@Repository
public interface XmlRepository extends JpaRepository<Xml, Long>{
}
...这是来自控制器的调用
@PostMapping(path = "/xml")
public Xml createXml(@RequestBody Xml xml) {
Xml savedXml = xmlRepository.save(xml);
return xml;
}
我不知道是否是最好的方法,但这是我学习/知道的方法,如果你有更好的方法,使用 Spring boot,我很感激。
【问题讨论】:
标签: xml rest spring-boot jpa