Я создал простую викторину, используя данные Spring, и сопоставил вопрос и категорию в отношении Многие к одному, используя аннотации. Я пытаюсь получить случайный вопрос в данной категории, но это дает указанную выше ошибку, и я пробовал несколько альтернатив. Но не работает похоже.
Категория.java
@Entity
@Table(name = "categories")
public class Category {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long catId;
@Column(nullable = false , unique = true)
private String description;
Вопрос.java
@Entity
@Table(name = "question")
public class Question {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long questionId;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "catId", nullable = false, updatable = false)
@JsonBackReference
private Category category;
@Lob
@Column (nullable = false)
private String question;
@Column (nullable = false)
private String medium;
ВопросРепозиторий.java
@Repository
@Transactional
public interface QuestionRepository extends JpaRepository<Question, Long> {
@Query("select question from Question question where question.catId = :catId AND question.medium = :medium order by function('RAND')")
List<Question> getQuestionsForAttempt(@Param("catId") Long catId , @Param("medium") String medium);
@Query("select question from Question question where question.catId = : catId")
List<Question> getQuestionByCategory(@Param("catId") Long catId);
}




Это JPQL, а не SQL, поэтому вам нужно подумать о зависимостях в вашем запросе:
select question from Question question where question.category.catId
или
select question from Question question inner join question.category c where c.catId