Java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: ожидаемый путь для присоединениJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: ожидаемый путь для присоединени

Сообщение Anonymous »

Я прочитал примеры, но у меня есть личный вопрос.
У меня есть 2 таблицы:

Код: Выделить всё

Role:
id, name
User:
id, login, name, role_id
Роль объекта:

Код: Выделить всё

@Entity
@Table(name = "role")
public class Role {

@Id
@Column(name = "id")
private long id;

@Column(name = "name", length = 45)
private String name;

@OneToMany(cascade = CascadeType.ALL, mappedBy = "role")
private Set user = new HashSet();

//getters and setters
Пользователь:

Код: Выделить всё

@Entity
@Table(name = "user")
public class User {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id",insertable = false, updatable = false)
private long id;

@Column(name = "login")
private String login;

@Column(name = "user_name")
private String userName;

@ManyToOne(fetch = FetchType.LAZY)
private Role role;

//getters and setters
И репозиторий:

Код: Выделить всё

public interface UserRepository extends JpaRepository {

String Q_GET_ALL_USERS = "from User u left join Role r on u.role_id=r.id";

@Query(Q_GET_ALL_USERS)
Collection getAllUsers();
Этот код показывает:

Вызвано: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: ожидается путь для присоединения! [из com.example.jpa.model.User u оставил присоединиться к роли r на u.role_id=r.id]

Насколько я понимаю, сущность не может содержать идентификатор (в моем случае в роли) для ссылок, и мне следует удалить это поле. Но сущность должна иметь @Id.
В этом случае мне следует создать новый столбец в «Роли»? или можно использовать более красивое решение?
Я перенес весь проект на Bitbucket.

Подробнее здесь: https://stackoverflow.com/questions/351 ... rysyntaxex
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»