У меня есть 2 класса сущностей, и я использую pgadmin4 для postgresql.
PostQuestions имеют внешний ключ userId для таблицы Users
В настоящее время я хочу выполнить @Query, чтобы получить все таблицы Users и PostQuestions
Сопоставить их с моим интерфейсом, который может отображаться опубликован вопрос и кто прикрепил ответ в формате json о том, как он должен выглядеть, где я буду отображать и отображать все вопросы и адрес электронной почты пользователя, но для общих целей я собираюсь запросить обе таблицы и просто выбрать, какие значения я хочу для отображения, поскольку я также хочу узнать больше о сопоставлении карт структуры
Но я сталкиваюсь с ошибками и в настоящее время не понимаю, как исправить, я не знаком с ошибками трассировки стека и не знаю, с чего мне начать исправление
Ошибка при создании bean-компонента с именем userRepository, определенным в
io.tracker.track_app.repos.UserRepository, определенном в
@EnableJpaRepositories объявлено в DomainConfig: не удалось создать
запрос для общедоступного абстрактного java.util.List
io.tracker.track_app.repos.UserRepository.getUsersAndPosts(); Причина:
Не удалось выполнить проверку запроса метода public Abstract java.util.List
io.tracker.track_app.repos.UserRepository.getUsersAndPosts()
Причина: java.lang.IllegalArgumentException: невозможно сравнить тестовое
выражение типа [Пользователи] с элементом типа
[BasicSqmPathSource(userId : Integer)]
Я прикрепил свои классы сущности и dto к репозиторию, в котором я написал свой JPA @Query.
Изображение — это ответ json, который мой интерфейс получит для отображения. значения, которые я собираюсь выбрать и отобразить

Дополнительные вопросы
@Entity
@Table(name = "posts", schema = "public")
public class PostQuestion {
@Id
@Column(name = "post_id", nullable = false, updatable = false)
@SequenceGenerator(
name = "primary_sequence",
sequenceName = "primary_sequence",
allocationSize = 1
)
@GeneratedValue(
strategy = GenerationType.IDENTITY
)
private Integer postId;
@Column(name="questionnum", nullable = false)
private Long questionnum;
@Column(name="title", nullable = false)
private String title;
@Column(name="url", nullable = false)
private String url;
@Column(name="content" , nullable = false)
private String content;
@Column(name = "timestamp")
private LocalDate timestamp;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
private Users userId;
PostQuestionDTO
public class PostQuestionDTO {
private Integer postId;
@NotNull
private Long questionnum;
@NotNull
@Size(max = 255)
private String title;
@NotNull
@Size(max = 255)
private String url;
@NotNull
@Size(max = 255)
private String content;
private LocalDate timestamp;
private Integer userId;
private String email;
Пользователи
@Entity
@Table(name = "users", schema="public")
public class Users {
@Id
@Column(name = "user_id", nullable = false, updatable = false)
@SequenceGenerator(
name = "primary_sequence",
sequenceName = "primary_sequence",
allocationSize = 1
)
@GeneratedValue(
strategy = GenerationType.IDENTITY
)
private Integer userId;
@Column(name = "email", nullable = false, unique = true)
private String email;
@Column(name = "password", nullable = false)
private String password;
@Column(name = "role", nullable = false)
private String role;
@OneToMany(mappedBy = "userId")
private List
postId;
UserDTO
public class UserDTO {
private Integer userId;
@NotNull
@Size(max = 255)
private String email;
@NotNull
@Size(max = 255)
private String password;
@NotNull
@Size(max = 255)
private String role;
private List
postQuestionDTO;
Репозиторий пользователей
public interface UserRepository extends JpaRepository {
@Query("SELECT p, u FROM PostQuestion p INNER Join Users u ON p.userId = u.userId")
List getUsersAndPosts();
}
Класс Mapper
@Mapper
public interface UserMapper {
UserDTO mapToDTO(Users user);
Users mapToEntity(UserDTO userDTO);
}
Подробнее здесь: https://stackoverflow.com/questions/773 ... -hql-query