Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate-getResultList()返回乘以的第一行。春天_Hibernate - Fatal编程技术网

Hibernate-getResultList()返回乘以的第一行。春天

Hibernate-getResultList()返回乘以的第一行。春天,hibernate,Hibernate,这是我的课程 String query = "from Authority"; session = sessionFactory.openSession(); List<Authority> authorities= session.createQuery(query).getResultList(); session.close(); for(Authority a: authorities){ System.out.pri

这是我的课程

    String query = "from Authority";
    session = sessionFactory.openSession();
    List<Authority> authorities= session.createQuery(query).getResultList();
    session.close();

    for(Authority a: authorities){
        System.out.println(a.getEmail());
    }
当我想显示我的结果时,我会在每次“for”迭代中得到第一行。 你知道为什么会这样吗

假设我的数据库中有如下行:

email1@server.com  ROLE_USER
email2@server.com  ROLE_USER
email3@server.com  ROLE_USER
email4@server.com  ROLE_USER
因此,对于is:

email1@server.com
email1@server.com
email1@server.com
email1@server.com

映射中存在几个问题

第一个问题是authorities表中的authority列不是主键。用Id注释标记它是不正确的,这会混淆hibernate

第二个也是主要的问题是,根据您的模型,每个用户可能有多个权限,但您的数据表明,每个权限可能与许多用户相关。权限表似乎为用户和权限实体之间的多对多关系建模,而映射试图将其纳入一对多关系

email1@server.com  ROLE_USER
email2@server.com  ROLE_USER
email3@server.com  ROLE_USER
email4@server.com  ROLE_USER
email1@server.com
email1@server.com
email1@server.com
email1@server.com