我是jpa的新手,想知道我是如何实现这一点的。我想在其他几个实体中使用一个名为Address的实体。
汽车实体:
@Entity
public class Car
@Id
private String id;
private String licensePlate;
@ManyToOne
private Address address;
public Car() {
}
/* Getter and setters */
....
..
人的实体:
@Entity
public class Person {
@Id
private String id;
private String name;
@OneToMany(mappedBy = "address", cascade = CascadeType.ALL)
private Set<Address> addresses;
public Person() {
}
/* Getter and setters */
....
..
解决实体:
@Entity
public class Address {
@Id
private String id
private String streetAndNumber;
/* Now what?????? */
private Car car; // would fit for car
private Person person; // would fit for person
// But what would be fitted both?
我上网寻找解决办法。但是,最有可能的原因是我缺乏知识。我找不到什么可以理解的。
实际上没有必要使所有关系都是双向的,在模型中尽可能选择单向关系是最佳实践,请参阅快速领域驱动设计。
在这种情况下,Address不需要知道它所关联的所有实体。还可以考虑使用@Embeddable
注释使地址成为一个值对象(参见DDD)。