Java 多对多联接表的JPQL查询
我有两个实体用户和AccountBase,具有多对多关系。 我需要从联接表中选择具有选定用户ID的所有AccountBase对象。 我尝试了一些连接查询,但不起作用Java 多对多联接表的JPQL查询,java,jpa,many-to-many,jpql,Java,Jpa,Many To Many,Jpql,我有两个实体用户和AccountBase,具有多对多关系。 我需要从联接表中选择具有选定用户ID的所有AccountBase对象。 我尝试了一些连接查询,但不起作用 @Table(name = "ACCOUNT") @DiscriminatorColumn(name = "ACCOUNT_TYPE", length = 1) public abstract class AccountBase extends ModelBase { protected d
@Table(name = "ACCOUNT")
@DiscriminatorColumn(name = "ACCOUNT_TYPE", length = 1)
public abstract class AccountBase extends ModelBase {
protected double balance;
protected List<User> users = new ArrayList<>();
@表(name=“ACCOUNT”)
@鉴别器列(name=“ACCOUNT\u TYPE”,长度=1)
公共抽象类AccountBase扩展了ModelBase{
保护双重平衡;
受保护的列表用户=新建ArrayList();
@Table(name=“USER\u ACCOUNT”)
公共类用户扩展ModelBase实现可序列化{
私有静态最终长serialVersionUID=1L;
受保护的字符串名称;
受保护列表从帐户库加入用户实体
select account from AccountBase account join account.users user where user.id=?
我以前尝试过这个,但没有成功,这就是我得到的。org.glassfish.jersey.server.internal.process.MappableException:com.fasterxml.jackson.databind.JsonMappingException:Infinite recursion(StackOverflowError)(通过引用链:org.eclipse.persistence.indirection.indirection.IndirectList[0]->com.algonquincollege.cst8277.models.User[“bankAccounts”]->org.eclipse.persistence.indirection.IndirectList[0]->com.algonquincollege.cst8277.models.InvestmentAccount[“users”])
InvestmentAccount从AccountBase扩展而来。这是一个不同的错误。当您映射到json时,您有一个无限循环,请将@JsonIgnore放在Account中的用户之前或UserBancaccounts之前谢谢。我通过在两个实体中添加@jsonignoreporties解决了这个问题。
select account from AccountBase account join account.users user where user.id=?