繁体   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