我有一个问题,我想用以下示例解释:
JPA班级人员:
@ManyToMany(mappedBy = "persons")
private List<Car> cars= new ArrayList<>();
public void setCars(List<Car> cars) {
this.cars= cars;
}
public List<Car> getCars() {
return cars;
}
问题出现在哪里:
Servlet类:
Person person = genericDao.findOne(1);
request.setAttribute("person", person.getName());
List<Car> cars= new ArrayList<Car>();
cars= person.getCars();
request.setAttribute("cars", cars);
问题在于,当试图获得汽车时。它们不会自动从数据库中检索并保存在Person类的数组中。如何设置具有多对多关系的JPA类,从中我可以轻松地检索具有关系的对象。
Car.java
IMPORT LEFT OUT!
@Entity
@Table(name = "DSD_Cars")
public class Car extends ModifiableEntity {
private String name;
private String description;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@ManyToMany
@JoinTable(
name="DSD_Persons_Cars",
joinColumns = {@JoinColumn(name="IDCar", referencedColumnName = "ID")},
inverseJoinColumns = {@JoinColumn(name = "IDPerson", referencedColumnName = "ID")}
)
private List<Person> persons= new ArrayList<>();
public void setPersons(List<Person> persons) {
this.persons= persons;
}
public List<Persons> getPersons() {
return persons;
}}
答案 0 :(得分:0)
问题已经解决:
Car类有一个@Table(name =“DSD_Cars”)注释。但是,@ Table使用了错误的导入规则。将@Table类型更改为JPA版本后,一切正常。如果未正确定义@Table,JPA似乎使用类名。这解释了错误。
感谢所有花时间帮助我的人!