有人可以帮助我如何使用JPA加入这三个表?
我已经完成了3个实体中的2个,但请告诉我是否可以:
@Entity
public class Pacienti {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String nume;
private String prenume;
//setters & getters
}
@Entity
public class Chestionare {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Id
@Column(name = "id_intrebare")
@GeneratedValue(strategy = GenerationType.AUTO)
private int idIntrebare;
private String intrebare;
//setters & getters
}
我保证在自动生成实体后回来。不幸的是现在我有另一个问题。 现在我有了实体:
@Entity
@Table(name = "pacienti")
@NamedQuery(name = "Pacienti.findAll", query = "SELECT p FROM Pacienti p")
public class Pacienti implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(unique = true, nullable = false)
private int id;
@Column(nullable = false, length = 20)
private String nume;
@Column(nullable = false, length = 20)
private String prenume;
// bi-directional many-to-one association to Consultatii
@OneToMany(mappedBy = "pacienti")
private List<Consultatii> consultatiis;
// bi-directional many-to-one association to DetaliiPacient
@OneToMany(mappedBy = "pacienti")
private List<DetaliiPacient> detaliiPacients;
// bi-directional many-to-one association to Doctori
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_doctor", nullable = false)
private Doctori doctori;
// bi-directional many-to-one association to RaspunsChestionar
@OneToMany(mappedBy = "pacienti")
private List<RaspunsChestionar> raspunsChestionars;
public Pacienti() {
}
//setters and getters
}
但是当我这样做时:
Query queryResult = sessionFactory.getCurrentSession().createQuery("from Pacienti");
我得到了:
Pacienti未映射[来自Pacienti] 错误。
有人可以告诉我为什么吗?我也试过“pacienti没有映射[来自pacienti]”但是同样的结果
谢谢!
答案 0 :(得分:1)
我建议您使用IDE提供的jpa工具/插件,它们将使用数据库表为您自动生成这些jpa实体,而不是手动创建这些实体。 并且他们将负责在自动生成过程本身中设置不同实体(db表)的关系。 如果你是Eclipse,你就可以做到这一点。
答案 1 :(得分:0)
问题是bcz没有查询名称“from pacienti”代替在您的createQuery方法中传递查询名称“Pacienti.findAll”。 如果您遇到任何问题,请务必知道。