You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Robert Zeigler (JIRA)" <ji...@apache.org> on 2011/08/22 19:53:29 UTC

[jira] [Commented] (TAP5-1340) HibernateEntityValueEncoder shouldn't throw an exception when the entity being encoded isn't persisted yet

    [ https://issues.apache.org/jira/browse/TAP5-1340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13088849#comment-13088849 ] 

Robert Zeigler commented on TAP5-1340:
--------------------------------------

ValueEncoders aren't a chain, so there's no "passing" going on.  ValueEncoderSource uses a MappedConfiguration to map from the type of a value to the encoder to use, attempting to match the type as specifically as possible. So the search for the correct encoder happens before HibernateEntityValueEncoder is ever called, and only one encoder is ever attempted per value.

You need to override the contribution for your entity type provided by the hibernate module with your custom encoder.


> HibernateEntityValueEncoder shouldn't throw an exception when the entity being encoded isn't persisted yet
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-1340
>                 URL: https://issues.apache.org/jira/browse/TAP5-1340
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-hibernate
>    Affects Versions: 5.2.3
>            Reporter: Hugo Palma
>
> The code:
> if (id == null)
>             throw new IllegalStateException(String.format(
>                     "Entity %s has an %s property of null; this probably means that it has not been persisted yet.",
>                     value, idPropertyName));
> means that i can never encode an entity class before it's persisted. The correct behaviour should be:
> 1. HibernateEntityValueEncoder - if id is not null proceed with encoding.
> 2. HibernateEntityValueEncoder - if id is null then pass object to the next encoder on the chain.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira