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 JPA:在多通关联期间,选择查询不起作用_Hibernate_Jpa_Model_Many To One - Fatal编程技术网

Hibernate JPA:在多通关联期间,选择查询不起作用

Hibernate JPA:在多通关联期间,选择查询不起作用,hibernate,jpa,model,many-to-one,Hibernate,Jpa,Model,Many To One,我有两个名为Banners和BannerGroup的类 我想建立一种关系manytone 因为在我的例子中,许多横幅可以具有相同的横幅组。 Mysql表是 mysql> desc Banners; +------------------+--------------+------+-----+---------+-----------------------------+ | Field | Type | Null | Key | Default |

我有两个名为Banners和BannerGroup的类

我想建立一种关系manytone

因为在我的例子中,许多横幅可以具有相同的横幅组。

Mysql表是

mysql> desc Banners;
+------------------+--------------+------+-----+---------+-----------------------------+
| Field            | Type         | Null | Key | Default | Extra                       |
+------------------+--------------+------+-----+---------+-----------------------------+
| banner_id        | int(11)      | NO   | PRI | NULL    | auto_increment              | 
| banner_name      | varchar(255) | YES  |     | NULL    |                             | 
| banner_group_id  | int(11)      | YES  | MUL | NULL    |                             | 
+------------------+--------------+------+-----+---------+-----------------------------+



mysql> desc Banner_Group;
+---------------------+--------------+------+-----+----------------+-----------------------------+
| Field               | Type         | Null | Key | Default        | Extra                       |
+---------------------+--------------+------+-----+----------------+-----------------------------+
| group_id            | int(11)      | NO   | PRI | NULL           | auto_increment              | 
| group_name          | varchar(255) | NO   | MUL | NULL           |                             | 
+---------------------+--------------+------+-----+----------------+-----------------------------+
我的模型课是这样的

Class Banners
{
    private Integer bannerId;
    private String bannerName;
    private Integer bannerGroupId;
    private BannerGroup bannerGroupDO;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name = "banner_id")
    public Integer getBannerId() {
        return bannerId;
    }

    public void setBannerId(Integer bannerId) {
        this.bannerId = bannerId;
    }

    @Column(name = "banner_name")
    public String getBannerName() {
        return bannerName;
    }

    public void setBannerName(String bannerName) {
        this.bannerName = bannerName;
    }

    @Column(name = "banner_group_id")
    public Integer getBannerGroupId() {
        return bannerGroupId;
    }

    public void setBannerGroupId(Integer bannerGroupId) {
        this.bannerGroupId = bannerGroupId;
    }

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "group_id")
    public AffiliateBannerGroup getAffiliateBannerGroupDO() {
        return affiliateBannerGroupDO;
    }

    public void setAffiliateBannerGroupDO(
            AffiliateBannerGroup affiliateBannerGroupDO) {
        this.affiliateBannerGroupDO = affiliateBannerGroupDO;
    }
}

Class BannerGroup{

    private int group_id;
    private int group_name;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name = "group_id")
    public Integer getGroupId() {
        return groupId;
    }

    public void setGroupId(Integer groupId) {
        this.groupId = groupId;
    }

    @Column(name = "group_name")
    public String getGroupName() {
        return groupName;
    }

    public void setGroupName(String groupName) {
        this.groupName = groupName;
    }
}
现在,当我尝试这样做的时候

Query q = session.createQuery("from com.abc.xyz.model.Banners ");
List<Banners> bannerDisplayList = q.list();
当我看到我的通用查询日志时,它给了我这个

131001  9:42:51  230 Query      select b0_.banner_id as banner1_247_, b0_.group_id as group25_247_, b0_.banner_group_id as banner3_247_, b0_.banner_name as banner2_247_ from Banners b0_
                  230 Query     SHOW FULL TABLES FROM `mydb` LIKE 'PROBABLYNOT'
                  230 Query     rollback
                  230 Query     SET autocommit=1
这意味着@joinColumn在这种多人关系中不起作用

我的代码错了吗?
这里怎么了?

为什么有bannerGroupId和bannerGroupDO?只要有bannerGroupDO和getter就可以了

比如

    @ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "banner_group_id", nullable = false)
public Node getBannerGroupDO() {
    return this.bannerGroupDO;
}
    @ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "banner_group_id", nullable = false)
public Node getBannerGroupDO() {
    return this.bannerGroupDO;
}