Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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 如何定义没有任何级联的单向一方JPA关系?_Java_Jpa - Fatal编程技术网

Java 如何定义没有任何级联的单向一方JPA关系?

Java 如何定义没有任何级联的单向一方JPA关系?,java,jpa,Java,Jpa,当我试图拯救一个人的时候,它并没有拯救任何东西,无论是人还是城市。我不想保存或更新城市对象。我只想更新/删除joinColumn。有没有办法做到这一点 Person person = new Person(); person.setCities(...); personDAO.save(person); public class Person{ @OneToMany(fetch = FetchType.EAGER) @JoinColumn(name = "city_id"

当我试图拯救一个人的时候,它并没有拯救任何东西,无论是人还是城市。我不想保存或更新城市对象。我只想更新/删除joinColumn。有没有办法做到这一点

Person person = new Person();
person.setCities(...);
personDAO.save(person);



public class Person{

    @OneToMany(fetch = FetchType.EAGER)
    @JoinColumn(name = "city_id")
    private List<City> cities;

}


public class City{
    @Id
    @Column(name = "city_id")
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "org.hibernate.id.UUIDGenerator")
    private String cityId;

}
Person-Person=新的Person();
个人设置(…);
救人;
公共阶层人士{
@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name=“city\u id”)
私人名单城市;
}
公营城市{
@身份证
@列(name=“city\u id”)
@GeneratedValue(generator=“系统uuid”)
@GenericGenerator(name=“system uuid”,strategy=“org.hibernate.id.UUIDGenerator”)
私有字符串cityId;
}

首先在城市一侧定义@manytone映射:

@ManyToOne
@JoinColumn(name = "person_id")
private Person person;
然后添加
mappedBy
属性并删除@JoinColumn:

@OneToMany(fetch = FetchType.EAGER, mappedBy = "person")
private List<City> cities;

搬家也是一样。。您必须删除两侧的实体引用。

首先在城市侧定义@manytone映射:

@ManyToOne
@JoinColumn(name = "person_id")
private Person person;
然后添加
mappedBy
属性并删除@JoinColumn:

@OneToMany(fetch = FetchType.EAGER, mappedBy = "person")
private List<City> cities;

搬家也是一样。。您必须删除两边的实体引用。

看到这个答案,如果您的数据库很大,我想再考虑一下GuangeFetch,请看这个答案,如果您的数据库很大,我想再考虑一下GuangeFetch,但这是一个双向映射,而不是像op asked那样的单向映射,但这是一个双向映射,不是像op要求的那样单向的