组件 tynamo/属性编辑块的故障读取参数'selected':palette_set



我正在遇到tynamo型号模块(org.tynamo:tapestry-model-web:0.3.1:jar)tapestry,我正在面对一个我无法的问题处理。

我有两个实体客户和合同。显然,客户有许多合同:

合同

@Entity
@BeanModels({ @BeanModel(reorder = "id") })
public class Contract {
    [...]
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="contract_id")
    public Long getId() {
        return id;
    }
    /**
     * @return the client
     */
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "client_id", nullable = true)
    public Client getClient() {
        return client;
    }

客户

@Entity
@BeanModels({ @BeanModel(reorder = "id") })
public class Client{
    [...]
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "client_id")
    public Long getId() {
        return id;
    }
    /**
     * @return the contracts
     */
    @OneToMany(cascade = { CascadeType.ALL })
    public List<Contract> getContracts() {
        return contracts;
    }

如果我不将合同与

签订合同,则可以创建一个新客户
@BeanModels({ @BeanModel(exclude = "contrats") })

但是,如果我尝试在不排除合同的情况下添加一个,我会得到以下例外:

ERROR] pages.Add Render queue error in SetupRender[tynamo/PropertyEditBlocks:palette_set]: Failure reading parameter 'selected' of component tynamo/PropertyEditBlocks:palette_set: org.apache.tapestry5.ioc.internal.util.TapestryException
org.apache.tapestry5.ioc.internal.util.TapestryException: Failure reading parameter 'selected' of component tynamo/PropertyEditBlocks:palette_set: org.apache.tapestry5.ioc.internal.util.TapestryException [at classpath:org/tynamo/pages/PropertyEditBlocks.tml, line 39]
    at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:153)
    at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.render(ComponentPageElementImpl.java:181)
    at org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72)
    at org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:124)
    at $PageRenderQueue_419b37801cb0d.render(Unknown Source)
    at $PageRenderQueue_419b37801cb0c.render(Unknown Source)

从我对调色板组件的理解中,这意味着应该存在的默认选择值...不是!确切地说是因为没有默认值!

如果我直接在数据库(MySQL)中添加客户P>

我错过了什么?

只需确保您的合同列表始终具有非零值。

@Entity
@BeanModels({ @BeanModel(reorder = "id") })
public class Client{
    private List<Contract> contracts = new ArrayList<Contract>();
    @OneToMany(cascade = { CascadeType.ALL })
    public List<Contract> getContracts() {
        return contracts;
    }
[...]
}

顺便说一句,小心客户与合同之间的双向关系。在这种情况下,我认为您正在尝试映射相同关系的两个侧面,但是您正在映射两个不同的关系。双向关系总是很棘手,但这是另一个问题。

最新更新