我有兩張桌子:
@Entity
@Table(name = "users")
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class User {
@Id
@Column(name = "user_login")
private String login;
@Column(name = "user_name")
private String name;
@Column(name = "password")
private String password;
@JsonManagedReference
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "user_role",
joinColumns = @JoinColumn(name = "user_login"),
inverseJoinColumns = @JoinColumn(name = "role_id")
)
private Set<Role> roles;
}
和
@Entity
@Table(name = "roles")
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class Role {
@Id
@Column(name = "role_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "role_name")
private String role;
@JsonBackReference
@ManyToMany(mappedBy = "roles")
private List<User> clients;
public Role(Long id, String role) {
this.id = id;
this.role = role;
}
@Override
public String toString() {
return "Role{" "id=" id ", role='" role '\'' '}';
}
}
為了與他們合作,我正在嘗試創建一個存盤庫:
public interface UserRepository extends JpaRepository<User, String> {
@Query("SELECT u FROM User JOIN FETCH u.roles")
List<User> findAllUsers();
}
我想列出所有用戶,但出現錯誤:
org.hibernate.hql.internal.ast.InvalidPathException: Invalid path: 'u.roles'
我嘗試撰寫不同的查詢,但總是收到此錯誤。有人可以告訴我有什么問題嗎?不使用 JPA,它可以作業,但現在使用它我得到一個錯誤。謝謝。
uj5u.com熱心網友回復:
您沒有為User. 這應該有效:
@Query("SELECT u FROM User u JOIN FETCH u.roles")
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/495691.html
上一篇:創建Bean控制器和存盤庫時出錯
下一篇:為連接表寫where條件
