In case anybody is interested, I was hitting a similar problem and here's what was
happening in my case:
EntityConverter#getAsObject() calls EntityManager#find(), but EntityManager#find() may
return a proxy instead of the real object when there's already a proxy for the object
in the session.
Now, there's code in UISelectOne#matchValue (in JSF RI) that checks whether the value
it received is in the list of select items:
//Coerce the item value type before comparing values.
Class type = value.getClass();
Object newValue;
try {
newValue = getFacesContext().getApplication().
getExpressionFactory().coerceToType(item.getValue(), type);
} catch (ELException ele) {
...
This coercion doesn't work since value.getClass() is a proxy class, whereas
item.getValue() is plain MyObject, so it can't be coerced to the proxy type. Thus the
effect is that I can't select some entities out of the list, while others are
selectable just fine.
I'm going to implement my own slightly hacked version of EntityStore Seam component to
see if I can work around the issue.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4123768#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...