我必须连接两个表并使用带有规范和 JPA 的Where 来过滤结果。不过我不太熟悉。
表格例如:
public class A {
private Long id;
private Long secondId;
...
}
public class daughterA {
@JoinColumn (name = "id")
private Long idA;
...
}
并且 WHERE 将应用于 secondaryId。
感谢大家的帮助,对于任何不准确之处,我深表歉意,我将从这些技术开始。
最佳答案
首先,您的联接似乎是一个一对多联接,因此您应该按原样进行:
- 在父类中添加 One 注释,通过另一个类中的实例名称进行映射,此注释涵盖子类的对象的 Set 或 List
- 在子类中添加ManyToOne注解,一个女儿只能有一个母亲,idA虽然不是Long,但指向父类,实际上是一个外键
public class A{
@Id
private Long id;
private Long secondId;
@OneToMany(mappedBy="idA")
private Set<daughterA > daughters;
...
}
public class daughterA {
@ManyToOne
@JoinColumn (name = "id")
private A idA;
...
}
对于 where 子句:
TypedQuery<Country> query =
em.createQuery("SELECT d FROM daughterA d WHERE d.idA.secondId = :secondId ", Country.class);
A results = query.setParameter("secondId",sencondId).getSingleResult();
关于java - 规范 JPA - 内部 + where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57954880/