سؤال

عندما أعدم

تضمين التغريدة (الاسم = "المجموعات" طالب.فيندبيغروبسيدغروبس "، الاستعلام = " حدد ز من غروبشاسستودينت ز أين ز. غروبشاسستودينتبك.مجموعات المجموعات=: مجموعات المجموعات"),

من المجموعاتطالب الكيان ، يتم إنشاء النتيجة الصحيحة.لكن أصلي آخر

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

في الواقع ليس لدي مثل هذا الجدول في ديسيبل ، ولكن الاسم الصحيح هو * المجموعات-الطالب * المحدد في @الجدول:

(كياني:)

@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() {
    }

وحتى عندما كنت إعادة تسمية الجدول في الخلية ل المجموعاتطالب هناك استثناء آخر

Unknown column 'ghs.groupsHasStudentPK.studentUserslogin' in 'where clause'

І це сумно..

هل كانت مفيدة؟

المحلول

انها ليست الاستعلام الأصلي (سكل) ، انها استعلام جبكل ، لذلك يجب عليك استخدام createQuery() بدلا من createNativeQuery().

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top