JPA 如何在用户 table 是一个连接的答案 table 中找到前 500 名,我们正在寻找 userid 等于某物的答案
JPA how to find top 500 in a answer table where the user table is a join and we are looking for answers where userid equals something
问题将 JPA 语法视为 findTop500 中的...其余部分我无法弄清楚。我曾尝试跟随错误并查看堆栈,但没有关于自动生成的 JPQL 的具体答案。自定义查询不足以完成此任务:
List<Answer> findTop500ByOrderByIdanswerDescWhereUserIduser(@Param("iduser") long iduser);
&
List<Answer> findTop500ByIdanswerWhereUserIduserOrderByIdanswerDesc(@Param("iduser") long iduser);
回答table:
@Entity
@Table(name="answer")
public class Answer {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
@Column(name="Idanswer")
private long idanswer;
@ManyToOne
@JoinColumn(name = "Useriduser", referencedColumnName = "Iduser")
private User user;
}
用户table:
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="Iduser")
private long iduser;
}
你必须这样创建它:
List<Answer> findTop500ByUserIduserOrderByIdanswerDesc(long iduser);
你必须基于你的实体映射 -> BY user.iduser
问题将 JPA 语法视为 findTop500 中的...其余部分我无法弄清楚。我曾尝试跟随错误并查看堆栈,但没有关于自动生成的 JPQL 的具体答案。自定义查询不足以完成此任务:
List<Answer> findTop500ByOrderByIdanswerDescWhereUserIduser(@Param("iduser") long iduser);
&
List<Answer> findTop500ByIdanswerWhereUserIduserOrderByIdanswerDesc(@Param("iduser") long iduser);
回答table:
@Entity
@Table(name="answer")
public class Answer {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
@Column(name="Idanswer")
private long idanswer;
@ManyToOne
@JoinColumn(name = "Useriduser", referencedColumnName = "Iduser")
private User user;
}
用户table:
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="Iduser")
private long iduser;
}
你必须这样创建它:
List<Answer> findTop500ByUserIduserOrderByIdanswerDesc(long iduser);
你必须基于你的实体映射 -> BY user.iduser