Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 休眠请求处理失败_Java_Spring_Hibernate_Spring Mvc_Jpa - Fatal编程技术网

Java 休眠请求处理失败

Java 休眠请求处理失败,java,spring,hibernate,spring-mvc,jpa,Java,Spring,Hibernate,Spring Mvc,Jpa,我正在插入用户hv多对一映射到城市。然后将城市hv manytone映射到乡村。所以,当我插入具有重复城市或国家的用户时,它抛出异常 @Entity @Table(name = "users") @XmlRootElement public class User implements java.io.Serializable { /** * */ private static final long serialVersionUID = -209569791

我正在插入用户hv多对一映射到城市。然后将城市hv manytone映射到乡村。所以,当我插入具有重复城市或国家的用户时,它抛出异常

@Entity
@Table(name = "users")
@XmlRootElement
public class User implements java.io.Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = -2095697913583686677L;

    private String firstname;

    private String lastname;

    private String dob;
    private long mobile;
    private String email;
    @ManyToOne
    @Cascade(CascadeType.SAVE_UPDATE)
    @JoinColumn(name = "city_name", nullable = false)
    private City city;
    private String country;
    private String password;
    private Date createdTime;
    private Date lastLoggedIn;
    private int rating;
    @Id
    private int id;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getFirstname() {
        return firstname;
    }

    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }

    public String getLastname() {
        return lastname;
    }

    public void setLastname(String lastname) {
        this.lastname = lastname;
    }

    public String getDob() {
        return dob;
    }

    public void setDob(String dob) {
        this.dob = dob;
    }

    public long getMobile() {
        return mobile;
    }

    public void setMobile(long mobile) {
        this.mobile = mobile;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public City getCity() {
        return city;
    }

    public void setCity(City city) {
        this.city = city;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public Date getLastLoggedIn() {
        return lastLoggedIn;
    }

    public void setLastLoggedIn(Date lastLoggedIn) {
        this.lastLoggedIn = lastLoggedIn;
    }

    public int getRating() {
        return rating;
    }

    public void setRating(int rating) {
        this.rating = rating;
    }

    public String toString() {
        return "Name = " + firstname + ",Mobile = " + mobile + ",Email = "
                + email + ",City = " + city + ",Country = " + country
                + ", TimeCreated = " + createdTime;
    }

}

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

    @Id
    @GeneratedValue
    private int id;

    @Column(name = "city_name", unique = true, nullable = false, length = 40)
    private String cityName;

    @ManyToOne
    @Cascade(CascadeType.SAVE_UPDATE)
    @JoinColumn(name = "country_name", nullable = false)
    private Country countryName;

    @OneToMany
    @Cascade(CascadeType.SAVE_UPDATE)
    @JoinColumn(name = "city_name")
    private List<User> users;

    public List<User> getStockDailyRecords() {
        return this.users;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getCityName() {
        return cityName;
    }

    public void setCityName(String cityName) {
        this.cityName = cityName;
    }

    public Country getCountryName() {
        return countryName;
    }

    public void setCountryName(Country countryName) {
        this.countryName = countryName;
    }

    public List<User> getUsers() {
        return users;
    }

    public void setUsers(List<User> users) {
        this.users = users;
    }

}



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

    @Id
    @GeneratedValue
    private int id;

    @Column(name = "country_name", unique = true, nullable = false, length = 40)
    private String countryName;

    @OneToMany
    @JoinColumn(name = "country_name")
    private List<City> citys;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getCountryName() {
        return countryName;
    }

    public void setCountryName(String countryName) {
        this.countryName = countryName;
    }

    public List<City> getCitys() {
        return citys;
    }

    public void setCitys(List<City> citys) {
        this.citys = citys;
    }

}

我看不到保存对象的代码。。但是从异常堆栈中,我可以看到您正在尝试在保存城市之前保存person。

这是错误
org.hibernate.TransientPropertyValueException:对象引用了未保存的瞬态。

当您试图持久化父对象而您的子对象不是“是”持久化时,会出现此问题,因此在您的情况下,请先保存国家、城市,然后将其设置为“用户对象”,然后保存用户对象

在hibernate中保存对象有多种方法,具体取决于您使用的对象

saveOrUpdate();
update();
save();
persist();
merge();

有关更多详细信息,请访问

您的错误消息中另有说明(我相信)。看来你没有正确地坚持你的道。另外,如何配置persistence.xml和applicationContext.xml文件?我有一个用户实体,它和城市有多对一的映射。然后城市实体与国家进行多对一映射。所以,如果我插入具有相同城市和国家的用户,则会出现此错误。@SubhamRohatgi不过,请在这个问题中发布您的spring应用程序context.xml和persistence.xml文件。当您使用
spring
Change
update
to
create
not
update
将持久性和上下文设置文件标记为问题时,这是一种标准做法。有趣的是,在测试和生产中,“验证”应该与数据库一起工作,但在这种情况下,它不会在每次我重新启动服务器时删除表并再次创建。我试图先保存国家,然后保存城市,然后保存用户。cityName和countryName是唯一的。当我试图保存来自同一城市和国家的其他用户时,我遇到了这个错误。
saveOrUpdate();
update();
save();
persist();
merge();