我在这里有3个实体A,B和C.
public class A extends B{
int id;
String name;
}
///////////////////////////////////////
public class B implements Serializable{
int id;
String name;
}
///////////////////////////////////////
@Entity
@Table(name="C")
@NamedQueries({
@NamedQuery(name="C.findByA",
query="SELECT e FROM C AS e WHERE e.A = :id")
})
public class C implements Serializable {
int id;
@OneToOne
A a;
B b;
}
实体A和实体B都与实体C有关系。 在我的情况下,我有来自实体A的当前id,我想使用来自实体C的查询到达实体B.
我在很多方面尝试过但没有帮助。 我试过这个作为我的存储库
public QueryResult<C> findByA(Long id);
然后使用
Repo.findByA(id);
还在我的FacadeClass
中尝试了这个C result=(C) em.createNamedQuery("findByA").setParameter("id",id).getSingleResult();
return result;
但它不起作用。 我试图直接使用Query()和TypedQuery()进行查询 没人工作。
任何人都可以帮助我向我展示方式或给我一个想法。 它不应该那么难,但我有些困惑。
感谢。
答案 0 :(得分:0)
您可以使用 JpaRepository
public interface CRepo extends JpaRepository<C, Long>{
C findByA(A a);
List<C> findByB(B b);
}
答案 1 :(得分:0)