簡體   English   中英

Hyperjaxb3:是否可以避免在PO樣本上創建Items表/類?

[英]Hyperjaxb3: Is it possible to avoid Items table/class creation on PO sample?

我試圖避免加入班級創建。 我測試了一些綁定配置,但似乎無法完成。

在標簽為0.6.0 ejb / tests / po-customized的git來源的PO Sample中 ,我嘗試了一些配置。

首先,我在綁定中將join-column添加為一對多映射

綁定文件

...
        <hj:persistence>
            <hj:default-one-to-many>
                <orm:join-column />
                <!-- <orm:join-table /> -->
            </hj:default-one-to-many>
        </hj:persistence>
...

這只會將getItem中的注釋從JoinTable更改為JoinColumn。

另外,我嘗試通過告訴xsd映射直接添加列表來覆蓋它。 下面的代碼不起作用,但這是我一直在嘗試的基本思想……(從沒讓它起作用)

綁定文件

...
        <jaxb:bindings node="xs:complexType[@name='PurchaseOrderType']">
            <hj:entity>
                <orm:table name="po" />
            </hj:entity>
            <jaxb:bindings node=".//xs:element[@name='items']">
                <hj:one-to-many>
                    <orm:join-column name="PO_ID" />
                </hj:one-to-many>
            </jaxb:bindings>
        </jaxb:bindings>
...

是否可以使用此定義生成PurchaseOrderType (省略了一些xml注釋)

...
public class PurchaseOrderType ... {

    protected USAddress shipTo;
    protected USAddress billTo;

    @XmlElementWrapper(name="items")
    @XmlElement(name="item")
    protected List<Item> items;

    protected XMLGregorianCalendar orderDate;
    protected Long hjid;

...
    @OneToMany(targetEntity = Item.class, cascade = {
        CascadeType.ALL
    })
    public List<Item> getItems() {
...

請注意,在此代碼中,我直接指向生成的Item,而不是Items.Item。

非常感謝!

這在HJ2中有效,但尚未在HJ3中實現。 這是一個問題

原則上,您提到的XmlElementWrapper插件是一種解決方法。 我只是從未使用HJ3進行過測試。

如果您想使用此功能,請在此處提出問題,我將解決。

披露:我是Hyperjaxb3的作者。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM