有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java错误对象引用未保存的临时实例

我正在尝试持久化以下两个实体PersonCompany
当我亲自CascadeType.PERSIST时得到下面的错误。但是,当我将其更改为CascadeType.ALL时,错误消失。这个CascadeType.PERSIST不应该达到这个目的吗

我在{}和{}之间有{}关系

Person p1= new Person("GuyOne");
Company c1 = new Company("Amazon");
p1.setcompany(c1);
session.save(p1);

编辑:

@Entity

public class Person {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    int id;


    String name;

    @ManyToOne(cascade=CascadeType.PERSIST)
    @JoinColumn(name="company_id")
    Company company;

    public Person()
    {}

    public Person(String name) {
        super();
        this.name = name;

    }




    public int getId() {
        return id;
    }


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


    public String getName() {
        return name;
    }


    public void setName(String name) {
        this.name = name;
    }


    public Company getcompany() {
        return company;
    }


    public void setcompany(Company c) {
        this.company = c;
    }

公司

@Entity
public class Company {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    int id;

    String name;

    @OneToMany(mappedBy="company")
    List<Person> persons= new ArrayList<Person>();

public Company()
    {}


    public Company(String name) {
        super();
        this.name = name;
    }

    public List<Person> getPersons() {
        return persons;
    }

    public void setPersons(List<Person> persons) {
        this.persons = persons;
    }



    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

共 (0) 个答案