Извините, если это глупый вопрос, я изучаю JPA и REST.
Я пытаюсь настроить службу REST, которая получает запрос POST с XML и записывает в одну таблицу,но я застрял с "подуровнями" в 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, я ценю.