嵌套XML数据的JPA持久性不起作用

时间:2016-06-27 08:14:03

标签: java xml hibernate jpa annotations

我想要保留以下XML。我只想坚持tosaveElements但我需要在我的toSave Elements中使用date属性。

<data date="01/Jul/2016">
    <tosave>
        <a>a1</a>
        <b>b1</b>
        <c>c1</c>
        <d>d1</d>
        <e>e1</e>
    </tosave>
    <tosave>
        <a>a2</a>
        <b>b2</b>
        <c>c2</c>
        <d>d2</d>
        <e>e2</e>
    </tosave>
</data>

我有以下XML,并且编组接缝正常工作

<beanio xmlns="http://www.beanio.org/2012/03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.beanio.org/2012/03 http://www.beanio.org/2012/03/mapping.xsd">
    <stream name="Upload" xmlType="none" format="xml">
        <record name="data" minOccurs="1" maxOccurs="1" class="Wrapperclass">
            <field name="date" xmlName="date" xmlType="attribute" />
            <segment name="items" xmlName="tosave" collection="list" class="TosaveClass" minOccurs="1"  maxOccurs="unbounded">
                <field name="a" xmlName="a"/>
                <field name="b" xmlName="b"/>
                <property name="h" value="1"/>
                <property name="i" value="GB"/> 
            </segment>
         </record>
    </stream>
</beanio>

tosaveClass是一个具有已经工作的注释的类(该类已在使用中)。 问题因为JPA尝试持久化而成为Wrapperclass。 我收到以下错误信息

No metadata was found for type "Wrapperclass". The class is not enhanced.
FailedObject: Wrapperclass

由于这个类只是一个简单的包装类,我不想坚持这个类。

public class wrapperclass {

    private List<Tosave> items;
    private String date;

    public List<Tosave> getCurrencyItems() {
        return items;
    }
    public void setTosaveItems(List<Tosave> items) {
        this.items = items;
    }

    public List<v> postProcessBeanIO(String doPostProcessing)
            throws BeanIOException {
        List<Tosave> items = new ArrayList<Tosave>();

        //do some datemodification

        for (Tosave item : items) {

            // Remove duplicates
            if (!IsCurrencyCodeInList(items, item.getCode())) {
                // Set date
                item.setValidFrom(date);
                items.add(item);
            }
        }
        return items;
    }

//Getter&Setter
}

Tosave类包含在persistance.xml中 是否有注释使jpa不会尝试持久化包装类?

0 个答案:

没有答案