Hello,
I adapted the "booking example" that ships with the seam distribuition and run
into some problems. The User object is a Ejb3 entity object with scope of Session. It is
instantiated and injected by seam as the submit button is pressed on the register.xhtml
page.
For a logged in user, the session scope makes sense. however in this scenario, it is not
desirable to keep the state of the user (the object itself).
It would be desirable to always create a new instance of the user object, when the
register.xhtml page is opened (linked-in).
The example in the demo app only works, because the username is taken as primary key: it
will be set to a new value each time anyway. The same object is reused over and over again
this way.
When using a Long as id like this:
| @Id
| @GeneratedValue(strategy = GenerationType.AUTO)
| public Long getId() {
| return id;
| }
|
...the app will throw an exception. (Detatched object passed to persist). Instead of using
a "form backing (dto style) bean", I did a workaround hack (from the register
method in RegisterAction):
| final User allNewUser = new User();
| allNewUser.setUsername(user.getUsername());
| allNewUser.setName(user.getName());
| allNewUser.setPassword(user.getPassword());
|
| em.persist(allNewUser);
|
Here the var named user is the one passed in by seam and obviously all its fields are
copyied over to a new instance.
This is of course not nice and I would like to learn how to implement this properly (using
seam).
What am I missing?
Thanks a lot for your help, regards raoul
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4108618#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...