У меня есть две модели, классифицируемые как пользователи и авторитеты. Я использовал тип выборки EAGER, чтобы все данные, даже данные из таблиц полномочий, были извлечены, поскольку они сопоставлены друг с другом, но по какой-то причине он не извлекает детали из таблицы полномочий.
@Getter
@Setter
@Entity
@Table
public class Users {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column(unique = true)
private String email;
private String firstname;
private String lastname;
private String password;
@OneToMany(mappedBy = "users",
cascade = CascadeType.PERSIST,
fetch = FetchType.EAGER,
targetEntity = Authorities.class)
private Set<Authorities> authorities;
}
@Getter
@Setter
@Entity
@Table
public class Authorities {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String role;
@ManyToOne(targetEntity = Users.class,
cascade = CascadeType.PERSIST,
fetch = FetchType.EAGER)
@JoinColumn(name = "authorities")
private Users users;
}
@Repository
public interface UserRepository extends JpaRepository<Users, Integer> {
Optional<Users> findByEmail(String email);
}
Этот метод findByEmail не извлекает все детали из базы данных. Это только выборка данных из таблицы пользователей, но не из таблицы полномочий, хотя я использую тип выборки EAGER.