Java 如何使用Spring批处理HibernateItemWriter持久化映射实体?

Java 如何使用Spring批处理HibernateItemWriter持久化映射实体?,java,xml,spring,hibernate,spring-batch,Java,Xml,Spring,Hibernate,Spring Batch,我试图编写一个spring批处理作业来解析嵌套的XML,并使用Hibernate将数据持久化到多个表中。我能够使用StatxeventemReader解组xml。我尝试使用HibernateItemWriter持久化数据,但这只保存顶级实体“Shipping”,而不保存映射的实体“Party” 这是我的xml <Shipment> <TransactionId>000551070008555</TransactionId> <TransactionSet

我试图编写一个spring批处理作业来解析嵌套的XML,并使用Hibernate将数据持久化到多个表中。我能够使用StatxeventemReader解组xml。我尝试使用HibernateItemWriter持久化数据,但这只保存顶级实体“Shipping”,而不保存映射的实体“Party”

这是我的xml

<Shipment>
<TransactionId>000551070008555</TransactionId>
<TransactionSetPurpose>Replace</TransactionSetPurpose>
<TransactionType>Customer</TransactionType>
<Parties>
 <Party>
   <PartyType>Account</PartyType>
   <PartyCode>933334</PartyCode>
   <Name>AT HOME</Name>
 </Party>
 <Party>
   <PartyType>Shipper</PartyType>
   <PartyCode>CVASIH</PartyCode>
   <Name>CV.WIDHI ASIH BALI EXPORT</Name>
 </Party>
<Parties>
</Shipment>

你能分享一下这两者是如何映射的吗?谢谢你的回复。用映射编辑了我的问题。你能分享一下这两个问题是如何映射的吗?谢谢你的回复。用映射编辑我的问题。
public class ShipmentItemProcessor implements ItemProcessor<Shipment, 
Shipment> {

@Override
public Shipment process(Shipment result) throws Exception {
    System.out.println("Processing result :"+result);

    Set<Party> partySet = new HashSet<Party>();
    partySet.addAll(result.getParties().getParty());
    result.setPartySet(partySet);

    return result;
}
}
@XmlRootElement(name = "Shipment")
@Entity
public class Shipment{

protected String transactionId;
protected String transactionSetPurpose;
protected String transactionType;
@Id
protected String fileNumber;
@Transient
protected Parties parties;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "shipment")
private Set<Party> partySet = new HashSet<Party>(0); 

--getters and setters

}
@Entity
@XmlRootElement(name = "Party")
public class Party {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
protected int id;
protected String partyType;
protected String partyCode;
protected String name;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "fileNumber", nullable = false)
protected Shipment shipment;
--getters and setters
}