Hi Mark, I don't understand very well your problem but I think you have
here a problem with hibernate, when saving the user there is a property of
Center that is null and in your hibernate mapping files this property has
the not-null="true" attribute...
I wish I could be more helpful... :-)
Bruno
> I have a class that looks like this:
>
> public class UserBean extends BaseBean {
> private String username;
> private Long userId;
> private Center center;
> private String phone;
> private Contractor contractor;
> private String project;
> private boolean userContractor;
> private String contractNumber;
>
> ... getter/setter methods and business methods...
>
> and a corresponding User class that looks pretty much the same as the
> UserBean class.
>
> The UserBean's properties are all saved into an actual User object by a
> saveAction method.
>
> I'd like to be able to set the UserBean's center.centerId property so that
> when the properties are copied the center object is copied as well.
>
> In my JSP I have:
>
> <h:selectOneMenu id="center" value="#{userBean.center.centerId}">
> <f:selectItems value="#{applicationBean.centerSelectItems}"/>
> </h:selectOneMenu>
>
> However it seems that center is always null so I am getting an error, what
> is the proper way to ensure that center has been instantiated before the
> page is rendered?
>
> I have tried:
> private Center center = new Center();
>
> but this produces the error:
>
> net.sf.hibernate.PropertyValueException: not-null property references a
> null
> or transient value:
> gov.nasa.msfc.repository.submittal.model.businessobject.User.center
> showing me that center is still null.
>
> Here is UserBean's saveAction method:
>
> public String saveAction ()
> {
> String result = "fail";
> try
> {
> User user = UserBuilder.createUser ( this );
> this.serviceLocator.getUserService ().save ( user );
> result = "success";
> }
> catch ( UserException ex )
> {
> String msg = "Could not save/udpate user";
> FacesUtils.addErrorMessage ( msg + ":Internal Error" );
> }
> return result;
> }
>
> // UserBuilder.createUser is simply a static method that copies properites
> from this bean to a new instance of User.
>
> Thanks,
> -Mark
>
>
>