简体   繁体   English

not-null 属性引用 null 或 Hibernate 中的瞬态值错误

[英]not-null property references a null or transient value Error in Hibernate

I am building a Hibernate application to store Country, State and City Info in MySql DB.我正在构建一个 Hibernate 应用程序以在 MySql 数据库中存储国家、State 和城市信息。 But I keep running into a Exception in thread "main" org.hibernate.PropertyValueException: not-null property references a null or transient value even though I have null checks in concerned entities.但是我一直Exception in thread "main" org.hibernate.PropertyValueException: not-null property references a null or transient value ,即使我在相关实体中进行了 null 检查。

Here is Country.java这是Country.java

package com.models;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import com.sun.istack.NotNull;

@Entity
@Table(name = "COUNTRY")
public class Country {

    public Country() {
        super();
        // TODO Auto-generated constructor stub
    }

    public Country(String country, String countryCode) {
        super();
        this.country = country;
        this.countryCode = countryCode;

    }

    private String country;
    @Id
    @NotNull
    private String countryCode;

    @OneToMany(mappedBy = "state", cascade = CascadeType.ALL,fetch = FetchType.LAZY)
    private List<State> state = new ArrayList<State>();



    public List<State> getState() {
        return state;
    }

    public void setState(List<State> state) {
        this.state = state;
    }

    public String getCountry() {
        return country;
    }
    public void setCountry(String country) {
        this.country = country;
    }
    public String getCountryCode() {
        return countryCode;
    }
    public void setCountryCode(String countryCode) {
        this.countryCode = countryCode;
    }


}

Here is State.java这里是State.java

package com.models;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name = "STATE")
public class State {


    public State() {
        super();

    }
    public State(String state, String statecode) {
        super();

        this.state = state;
        this.statecode = statecode;


    }


    private String state;
    @Id
    private String statecode;


    @OneToMany
    List<City> city = new ArrayList<City>();

    @ManyToOne  
    @JoinColumn(name="countryCode", nullable=false)
    private Country country;


    public Country getCountry() {
        return country;
    }
    public void setCountry(Country country) {
        this.country = country;
    }
    public List<City> getCity() {
        return city;
    }
    public void setCity(List<City> city) {
        this.city = city;
    }

    public String getState() {
        return state;
    }
    public void setState(String state) {
        this.state = state;
    }
    public String getStatecode() {
        return statecode;
    }
    public void setStatecode(String statecode) {
        this.statecode = statecode;
    }




}

Here is City.java这里是City.java

package com.models;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name="CITY")
public class City {


    public City() {
        super();
        // TODO Auto-generated constructor stub
    }
    public City(String city, boolean isStateCapital, boolean isCountryCapital, 
            String statecode, String countrycode) {
        super();

        this.city = city;
        this.isStateCapital = isStateCapital;
        this.isCountryCapital = isCountryCapital;
        this.statecode = statecode;
        this.countrycode = countrycode;
    }
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int cityid;
    private String city;
    private boolean isStateCapital;
    private boolean isCountryCapital;
    private String statecode;
    private String countrycode;


    public String getStatecode() {
        return statecode;
    }
    public void setStatecode(String statecode) {
        this.statecode = statecode;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public boolean isStateCapital() {
        return isStateCapital;
    }
    public void setStateCapital(boolean isStateCapital) {
        this.isStateCapital = isStateCapital;
    }
    public boolean isCountryCapital() {
        return isCountryCapital;
    }
    public void setCountryCapital(boolean isCountryCapital) {
        this.isCountryCapital = isCountryCapital;
    }

    public String getCountrycode() {
        return countrycode;
    }
    public void setCountrycode(String countrycode) {
        this.countrycode = countrycode;
    }



}

Here is Application.java class这是Application.java class

package com.application;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;

import com.models.City;
import com.models.Country;
import com.models.State;

public class Application {

    public static void main(String[] args) {

        SessionFactory sessionFactory = getSessionFactory();
        Session session = sessionFactory.openSession();
        Transaction t = session.beginTransaction();

        Country country = new Country("India","IN");
        State state= new State("Delhi","DL");
        City city = new City("New Delhi",true,true,"DL","IN");

        country.getState().add(state);
        state.getCity().add(city);

        session.save(country);
        session.save(state);
        session.save(city);

        t.commit();
        session.close();
        sessionFactory.close();
    }

    private static SessionFactory getSessionFactory() {
        Configuration configuartion = new Configuration().configure();
        configuartion.addAnnotatedClass(Country.class);
        configuartion.addAnnotatedClass(State.class);
        configuartion.addAnnotatedClass(City.class);
//      StandardServiceRegistryBuilder registry = new StandardServiceRegistryBuilder();
//      registry.applySettings(configuartion.getProperties());
//      StandardServiceRegistry serviceRegistry = registry.build();
//      SessionFactory sessionFactory = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();
        SessionFactory sessionFactory = configuartion.buildSessionFactory();
        return sessionFactory;
    }

}

hibernate.cfg.xml file hibernate.cfg.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.password">pwdrd</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/countryinfo</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL55Dialect</property>
        <property name="show_sql">true</property>
        <property name="hbm2ddl.auto">update</property>
    </session-factory>
</hibernate-configuration>

I keep running into我一直遇到

May 23, 2020 2:38:13 PM org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator initiateService
INFO: HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
Hibernate: select state_.statecode, state_.countryCode as countryC3_2_, state_.state as state2_2_ from STATE state_ where state_.statecode=?
Exception in thread "main" org.hibernate.PropertyValueException: not-null property references a null or transient value : com.models.State.country
    at org.hibernate.engine.internal.Nullability.checkNullability(Nullability.java:111)
    at org.hibernate.engine.internal.Nullability.checkNullability(Nullability.java:55)
    at org.hibernate.action.internal.AbstractEntityInsertAction.nullifyTransientReferencesIfNotAlready(AbstractEntityInsertAction.java:116)
    at org.hibernate.action.internal.AbstractEntityInsertAction.makeEntityManaged(AbstractEntityInsertAction.java:125)
    at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:289)
    at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:263)
    at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:250)
    at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:343)
    at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:292)
    at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:198)
    at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:140)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:193)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:178)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:99)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:75)
    at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:108)
    at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:598)
    at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:591)
    at org.hibernate.engine.spi.CascadingActions$5.cascade(CascadingActions.java:219)
    at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:492)
    at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:416)
    at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:218)
    at org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade.java:525)
    at org.hibernate.engine.internal.Cascade.cascadeCollection(Cascade.java:456)
    at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:419)
    at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:218)
    at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:151)
    at org.hibernate.event.internal.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:464)
    at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:298)
    at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:198)
    at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:140)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:193)
    at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:178)
    at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:75)
    at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:108)
    at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:618)
    at org.hibernate.internal.SessionImpl.save(SessionImpl.java:611)
    at org.hibernate.internal.SessionImpl.save(SessionImpl.java:606)
    at com.application.Application.main(Application.java:30)

Though I have nullable checks at Country and State entities, I have cascade and fetch type lazy property set but still its not resolving.尽管我对 Country 和 State 实体进行了可空检查,但我设置了级联和获取类型的惰性属性集,但仍然无法解析。 Will deeply appreciate help in this.将非常感谢这方面的帮助。 Thanks.谢谢。 Sid席德

Can you make the following changes and try您可以进行以下更改并尝试

In the Country entity there is an issue with mapping, the mappedBy field is set to state , this will create an additional foreign key.Country实体中存在映射问题, mappedBy字段设置为state ,这将创建一个额外的外键。 Please update it as below请更新如下

@OneToMany(mappedBy = "country", cascade = CascadeType.ALL,fetch = FetchType.LAZY)
private List<State> state = new ArrayList<State>();

Since you are using bidirectional @OneToMany relation between the Country and State entity all the following method to your Country entity由于您在CountryState实体之间使用双向@OneToMany关系,因此对您的Country实体使用以下所有方法

public void addState(State st) {
    state.add(st);
    st.setCountry(this);
}

public void removeState(State st) {
    state.remove(st);
    st.setCountry(null);
}

Now make the following changes in the Application.java现在在Application.java中进行以下更改

Country country = new Country("India","IN");
State state= new State("Delhi","DL");
City city = new City("New Delhi",true,true,"DL","IN");

session.save(city);

state.getCity().add(city);
country.addState(state);

session.save(country);

t.commit();
session.close();
sessionFactory.close();

I am building a Hibernate application to store Country, State and City Info in MySql DB.我正在构建一个 Hibernate 应用程序来存储 MySql DB 中的 Country、State 和 City Info。 But I keep running into a Exception in thread "main" org.hibernate.PropertyValueException: not-null property references a null or transient value even though I have null checks in concerned entities.但是我一直Exception in thread "main" org.hibernate.PropertyValueException: not-null property references a null or transient value ,即使我在相关实体中有 null 检查。

Here is Country.java这是Country.java

package com.models;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import com.sun.istack.NotNull;

@Entity
@Table(name = "COUNTRY")
public class Country {

    public Country() {
        super();
        // TODO Auto-generated constructor stub
    }

    public Country(String country, String countryCode) {
        super();
        this.country = country;
        this.countryCode = countryCode;

    }

    private String country;
    @Id
    @NotNull
    private String countryCode;

    @OneToMany(mappedBy = "state", cascade = CascadeType.ALL,fetch = FetchType.LAZY)
    private List<State> state = new ArrayList<State>();



    public List<State> getState() {
        return state;
    }

    public void setState(List<State> state) {
        this.state = state;
    }

    public String getCountry() {
        return country;
    }
    public void setCountry(String country) {
        this.country = country;
    }
    public String getCountryCode() {
        return countryCode;
    }
    public void setCountryCode(String countryCode) {
        this.countryCode = countryCode;
    }


}

Here is State.java这是State.java

package com.models;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name = "STATE")
public class State {


    public State() {
        super();

    }
    public State(String state, String statecode) {
        super();

        this.state = state;
        this.statecode = statecode;


    }


    private String state;
    @Id
    private String statecode;


    @OneToMany
    List<City> city = new ArrayList<City>();

    @ManyToOne  
    @JoinColumn(name="countryCode", nullable=false)
    private Country country;


    public Country getCountry() {
        return country;
    }
    public void setCountry(Country country) {
        this.country = country;
    }
    public List<City> getCity() {
        return city;
    }
    public void setCity(List<City> city) {
        this.city = city;
    }

    public String getState() {
        return state;
    }
    public void setState(String state) {
        this.state = state;
    }
    public String getStatecode() {
        return statecode;
    }
    public void setStatecode(String statecode) {
        this.statecode = statecode;
    }




}

Here is City.java这是City.java

package com.models;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name="CITY")
public class City {


    public City() {
        super();
        // TODO Auto-generated constructor stub
    }
    public City(String city, boolean isStateCapital, boolean isCountryCapital, 
            String statecode, String countrycode) {
        super();

        this.city = city;
        this.isStateCapital = isStateCapital;
        this.isCountryCapital = isCountryCapital;
        this.statecode = statecode;
        this.countrycode = countrycode;
    }
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int cityid;
    private String city;
    private boolean isStateCapital;
    private boolean isCountryCapital;
    private String statecode;
    private String countrycode;


    public String getStatecode() {
        return statecode;
    }
    public void setStatecode(String statecode) {
        this.statecode = statecode;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public boolean isStateCapital() {
        return isStateCapital;
    }
    public void setStateCapital(boolean isStateCapital) {
        this.isStateCapital = isStateCapital;
    }
    public boolean isCountryCapital() {
        return isCountryCapital;
    }
    public void setCountryCapital(boolean isCountryCapital) {
        this.isCountryCapital = isCountryCapital;
    }

    public String getCountrycode() {
        return countrycode;
    }
    public void setCountrycode(String countrycode) {
        this.countrycode = countrycode;
    }



}

Here is Application.java class这是Application.java 。java class

package com.application;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;

import com.models.City;
import com.models.Country;
import com.models.State;

public class Application {

    public static void main(String[] args) {

        SessionFactory sessionFactory = getSessionFactory();
        Session session = sessionFactory.openSession();
        Transaction t = session.beginTransaction();

        Country country = new Country("India","IN");
        State state= new State("Delhi","DL");
        City city = new City("New Delhi",true,true,"DL","IN");

        country.getState().add(state);
        state.getCity().add(city);

        session.save(country);
        session.save(state);
        session.save(city);

        t.commit();
        session.close();
        sessionFactory.close();
    }

    private static SessionFactory getSessionFactory() {
        Configuration configuartion = new Configuration().configure();
        configuartion.addAnnotatedClass(Country.class);
        configuartion.addAnnotatedClass(State.class);
        configuartion.addAnnotatedClass(City.class);
//      StandardServiceRegistryBuilder registry = new StandardServiceRegistryBuilder();
//      registry.applySettings(configuartion.getProperties());
//      StandardServiceRegistry serviceRegistry = registry.build();
//      SessionFactory sessionFactory = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();
        SessionFactory sessionFactory = configuartion.buildSessionFactory();
        return sessionFactory;
    }

}

hibernate.cfg.xml file hibernate.cfg.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.password">pwdrd</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/countryinfo</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL55Dialect</property>
        <property name="show_sql">true</property>
        <property name="hbm2ddl.auto">update</property>
    </session-factory>
</hibernate-configuration>

I keep running into我不断地遇到

May 23, 2020 2:38:13 PM org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator initiateService
INFO: HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
Hibernate: select state_.statecode, state_.countryCode as countryC3_2_, state_.state as state2_2_ from STATE state_ where state_.statecode=?
Exception in thread "main" org.hibernate.PropertyValueException: not-null property references a null or transient value : com.models.State.country
    at org.hibernate.engine.internal.Nullability.checkNullability(Nullability.java:111)
    at org.hibernate.engine.internal.Nullability.checkNullability(Nullability.java:55)
    at org.hibernate.action.internal.AbstractEntityInsertAction.nullifyTransientReferencesIfNotAlready(AbstractEntityInsertAction.java:116)
    at org.hibernate.action.internal.AbstractEntityInsertAction.makeEntityManaged(AbstractEntityInsertAction.java:125)
    at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:289)
    at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:263)
    at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:250)
    at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:343)
    at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:292)
    at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:198)
    at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:140)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:193)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:178)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:99)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:75)
    at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:108)
    at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:598)
    at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:591)
    at org.hibernate.engine.spi.CascadingActions$5.cascade(CascadingActions.java:219)
    at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:492)
    at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:416)
    at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:218)
    at org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade.java:525)
    at org.hibernate.engine.internal.Cascade.cascadeCollection(Cascade.java:456)
    at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:419)
    at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:218)
    at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:151)
    at org.hibernate.event.internal.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:464)
    at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:298)
    at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:198)
    at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:140)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:193)
    at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:178)
    at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:75)
    at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:108)
    at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:618)
    at org.hibernate.internal.SessionImpl.save(SessionImpl.java:611)
    at org.hibernate.internal.SessionImpl.save(SessionImpl.java:606)
    at com.application.Application.main(Application.java:30)

Though I have nullable checks at Country and State entities, I have cascade and fetch type lazy property set but still its not resolving.虽然我在 Country 和 State 实体有可空检查,但我设置了级联和获取类型惰性属性,但仍然无法解决。 Will deeply appreciate help in this.将深深感谢这方面的帮助。 Thanks.谢谢。 Sid席德

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 非空属性引用了一个瞬态值 Hibernate - Not-null property references a transient value Hibernate Hibernate / Spring:Not-null属性引用null或transient值 - Hibernate/Spring: Not-null property references a null or transient value not-null 属性在休眠中引用空值或瞬态值 - not-null property references a null or transient value in hibernate Java /休眠:not-null属性引用一个null或瞬态值 - Java/Hibernate: not-null property references a null or transient value 休眠:一对多非空属性引用一个空值或瞬态值 - Hibernate: One to Many not-null property references a null or transient value Hibernate:not-null属性引用null或transient值 - Hibernate: not-null property references a null or transient value 休眠非空属性引用一个空值或瞬态值 - hibernate not-null property references a null or transient value Hibernate + JPA:not-null属性引用一个null或瞬态值 - Hibernate + JPA: not-null property references a null or transient value not-null属性在Hibernate双向关系中引用null或瞬态值 - not-null property references a null or transient value in Hibernate bidirectional relationship Hibernate 错误 Not-null 属性引用了一个瞬态值 - 在当前操作之前必须保存瞬态实例 - Hibernate error Not-null property references a transient value - transient instance must be saved before current operation
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM