У меня есть запрос HQL:зимуют путь ожидается присоединиться, но путь установлен
"from User u inner join UserRole ur on ur.user_name = u.user_name and ur.user_role =ROLE_MANAGER "
И это показывает ошибку, хотя путь установлен. Я пробовал разные варианты hql, но ошибка остается прежней. Я использую эти 2 мандата для входа в учетную запись весны с db, и он отлично работает. Но когда я пытаюсь получить пользователя с указанной ролью, он не работает. Мои объекты:
@Entity
@Table(name = "USERS")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private int user_id;
@Column(name = "username", nullable = false, unique = true)
private String username;
@Column(name = "passwort", nullable = false)
private String password;
@Column(name = "email")
private String email = "[email protected]";
@Column(name = "enabled", nullable = false)
private int enabled = 1;
@Autowired
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private Set<UserRole> userRoles = new HashSet<UserRole>(0);
UserRole объектные:
@Entity
@Table(name = "USER_ROLES")
public class UserRole {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id",unique = true, nullable = false)
private int user_role_id;
@Column(name = "username")
private String username;
@Column(name = "user_role")
private String user_role;
Если я изменить мой HQL запрос на:
from User u inner join u.userRole ur on ur.user_name = u.user_name
and ur.user_role =ROLE_MANAGER "
он показывает ошибку,
could not resolve property: userRole of: com.webproject.User [from com.webproject.User u inner join u.userRole ur on ur.user_name = u.user_name and ur.user_role =ROLE_MANAGER ]
вы можете вставить эр ror trace – Pradeep
Ваша внутренняя часть соединения вашего запроса неверна. Чтобы перейти к UserRoles. Вы можете сделать так, как «от пользователя u внутреннее соединение u.userRoles ur» Взгляните на документацию спящего режима. https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html#queryhql-joins –
Почему он не работает? Дайте некоторые данные –