lamostreta
lamostreta

Reputation: 2409

Hibernate not-null property references a null or transient value exception

I am new to hibernate and trying to create a hibernate file for this table:

brand_id | brand_name | status
int,PK,AI  varchar(100) | bool

My hibernate file is:

<hibernate-mapping>
  <class name="Brand" table="brand" catalog="aCatalog">
    <id name="brandId" type="java.lang.Integer">
        <column name="brand_id" />
        <generator class="identity" />
    </id>
    <property name="brandName" type="string">
        <column name="brand_name" length="100" not-null="true"/>
    </property>
    <property name="status" type="boolean">
            <column name="status"/>
    </property>
  </class>
</hibernate-mapping>

when set not-null property of brandName to true, I got exception following exception:

org.hibernate.PropertyValueException: not-null property references a null or transient value: com.bla.pojos.Brand.status
    at org.hibernate.engine.Nullability.checkNullability(Nullability.java:72)
    at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:290)
    at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
    at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
    at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
    at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
    at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)

When I set it to false or wrote nothing there, I am saving my data with null value. What am I doing wrong?

EDIT:

Backing Bean:

@ManagedBean(name="brandSettingsBean")
@ViewScoped
public class BrandSettingsBean extends EBSBean implements Serializable {

    BrandSettingsService bsService = new BrandSettingsService();

    private Brand brand=new Brand();
    private String brandName;
    private Brand selectedBrand;
    private List<Brand> BrandList;

    public Brand getSelectedBrand() {
        return selectedBrand;
    }

public void setSelectedBrand(Brand selectedBrand) {
        this.selectedBrand = selectedBrand;
    }
public BrandSettingsBean() throws Exception {

        brandList=bsService.getBrands(null);
    }


 public void brandKaydet() {
        EBSResponse er = kiService.brandKaydet(brand, sessionUser, ipAdresi);

        if (er.getExceptionValue() == null) {
            this.brandList = (List<Brand>)er.getObjectValue();
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, localeBean.lang.getString(er.getStringValue()), "");
            FacesContext.getCurrentInstance().addMessage("sysMsg", message);
        } else {
            FacesMessage message = new FacesMessage(EBSUtils.getHataTipi(er.getExceptionValue().getHataTipi()), localeBean.lang.getString(er.getExceptionValue().getHataMesaji()), "");
            FacesContext.getCurrentInstance().addMessage("sysMsg", message);
        }

        brand=new Brand();
    }

xhtml:

<p:inputText size="30" maxlength="50" required="true" requiredMessage="#{lang.brand_req_txt}" value="#{BrandSettingsBean.selectedBrand.brandName}"/> 

Upvotes: 1

Views: 3846

Answers (1)

Alex Barnes
Alex Barnes

Reputation: 7218

It sounds like you're telling Hibernate that the brandName must not be null and then not setting it before saving. Can we see the code which generates the attached stack trace to confirm this?

Upvotes: 3

Related Questions