Jos*_*bre 5 java mysql spring jpa spring-data
我有一个问题,我需要使用表中的外键执行查询。问题是,在上面的@Query(在上面的 ExpenseRepository 中制作)中,我的日志说他不是按用户 ID(外键)搜索,而是搜索费用实体类的主键。
这是我的用户实体类:
@Entity
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String email;
@NotBlank(message = "Password required")
@Size(min = 6)
private String password;
//getters and setters
Run Code Online (Sandbox Code Playgroud)
这是我的费用实体类:
@Entity
public class Expenses implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private long limitValue;
private long spentValue;
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "id")
private User user;
//getters and setters here
Run Code Online (Sandbox Code Playgroud)
最后,这是我自己进行查询的存储库
public interface ExpensesRepository extends JpaRepository< Expenses, Long> {
@Query("FROM Expenses g where g.id = :userId")
GestaoGastos findAllByCurrentUser(@Param("userId") Long userId);
}
Run Code Online (Sandbox Code Playgroud)
小智 8
使用字段,而不是列 @Query
public interface ExpensesRepository extends JpaRepository< Expenses, Long> {
@Query("FROM Expenses g where g.user.id = :userId")
GestaoGastos findAllByCurrentUser(@Param("userId") Long userId);
}
Run Code Online (Sandbox Code Playgroud)