Язык запросов Hibernate: получение синтаксической ошибки SQL для моего запроса - PullRequest
0 голосов
/ 23 апреля 2020

Я уже проверил много связанных вопросов, но ответы там еще не решили мою проблему.

У меня есть сущности User и Character, которые отображаются через Hibernate.

@Entity
@Table(name = "user", uniqueConstraints = @UniqueConstraint(columnNames = { "username" }))
public class User {
    @Id
    @NotEmpty
    @Column(name = "username")
    private String username;

    ...
}

@Entity
@Table(name = "character", uniqueConstraints = @UniqueConstraint(columnNames = { "charId" }))
public class Character {
    ...

    @NotEmpty
    @ManyToOne
    @JoinColumn(name = "username", referencedColumnName = "username")
    private User user;

    ...
}

Я хочу выбрать все символы с указанным c именем пользователя, поэтому используемый мной запрос выглядит следующим образом:

private final static String RETRIEVE_CHARACTERS_FOR_USER = "select c from Character as c inner join User as u where u.username = :paramUsername";

и мой код выглядит следующим образом:

result = session.createQuery(RETRIEVE_CHARACTERS_FOR_USER, Character.class)
                .setParameter(PARAM_USERNAME, user.getUsername()).getResultList();

Я также пытался удалить внешний ключ, используйте String username вместо User user и просто запросите c.username, поэтому я даже не уверен, что проблема связана с Hibernate ...

Я надеюсь вы можете мне помочь! :)

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Хорошо, на самом деле это была действительно проблема с ключевым словом 'персонаж' ... изменил имя таблицы на 'chara c', и оно работало нормально.

0 голосов
/ 23 апреля 2020

Это должно работать:

private final static String RETRIEVE_CHARACTERS_FOR_USER = "select c from Character c where c.user.username = :paramUsername";
...