QueryException: не удалось разрешить свойство: catId of: com.my.myquiz.entity.Question - PullRequest
0 голосов
/ 04 февраля 2019

Я создал простой тест, используя данные Spring, и сопоставил вопрос и категорию в Соотношение «многие к одному» , используя аннотации.Я задаю вопрос, чтобы получить случайный вопрос в данной категории, но он дает ошибку выше, и я попробовал несколько альтернатив.Но не работает, кажется.

Category.java

@Entity
@Table(name = "categories")
public class Category {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long catId;

    @Column(nullable = false , unique = true)
    private String description;

Question.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;

QuestionRepository.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);
}

1 Ответ

0 голосов
/ 04 февраля 2019

Это JPQL, а не SQL, поэтому вам нужно подумать о зависимостях в вашем запросе:

select question from Question  question where question.category.catId

или

select question from Question  question  inner join question.category c where c.catId
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...