JPA не видел таблицу в БД
-
07-09-2020 - |
Вопрос
Когда я выполняю
@namedquery (name="guardshasstudent.findbygroupsidgroups", Query="Выбрать g из groupshasstudent g где ggroupshasstudentpk.groupsidgroups=: groupsiDgroups"),
of guashshasstudent объект, результат генерируется правильным.Но еще одна ротуальная служба
getEntityManager().
createNativeQuery(
"SELECT d.idDiscipline, d.name, gy.idGroupsYear, gy.year, g.idGroups "
+ "FROM Discipline d, Groupsyear gy, Groups g, GroupsHasStudent ghs "
+ "WHERE ghs.groupsHasStudentPK.groupsidGroups=2").
getResultList();
.
бросает исключение
Internal Exception:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
Table 'mydb.groupshasstudent' doesn't exist
.
На самом деле у меня нет такой таблицы в БД, но правильное имя - * group_has_student *, который указан в @table:
(Моя сущность :)
@Entity
@Table(name = "groups_has_student")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "GroupsHasStudent.findAll", query = "SELECT g FROM GroupsHasStudent g"),
@NamedQuery(name = "GroupsHasStudent.findByGroupsidGroups", query = "SELECT g FROM GroupsHasStudent g WHERE g.groupsHasStudentPK.groupsidGroups = :groupsidGroups"),
@NamedQuery(name = "GroupsHasStudent.findByStudentUserslogin", query = "SELECT g FROM GroupsHasStudent g WHERE g.groupsHasStudentPK.studentUserslogin = :studentUserslogin")})
public class GroupsHasStudent implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
protected GroupsHasStudentPK groupsHasStudentPK;
public GroupsHasStudent() {
}
.
И даже когда я переименую таблицу в mysql на guaspshasstudent, есть еще одно исключение
Unknown column 'ghs.groupsHasStudentPK.studentUserslogin' in 'where clause'
.
І ценовое ..
Решение
Это не нативный (SQL) запрос, это запрос JPQL, поэтому вы должны использовать createQuery()
вместо createNativeQuery()
.
Не связан с StackOverflow