一篇文章需要关联很多个标签,所以他们呈一对多(多对多)的关系
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.hs.model.Article.tagModels, could not initialize proxy - no Session
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.hs.model.Article.tagModels, could not initialize proxy - no Session
正确的配置如下
@ManyToMany(cascade = CascadeType.DETACH, fetch = FetchType.EAGER)//cascade级联状态,fetch是懒加载还是立即. @JoinTable( name = "article_tag",//中间表名称,如果没有这个表,程序启动后,自动在数据库创建 //ForeignKey指定外键,none是没有;ConstraintMode.NO_CONSTRAINT是不创建 foreignKey = @ForeignKey(name = "none", value = ConstraintMode.NO_CONSTRAINT), /** * joinColumns 是主控方给当前类指定关联,name是当前类Article的属性关联的中间表属性articleid, * referencedColumnName 是当前类的属性Article实体类的id */ joinColumns = { @JoinColumn(name = "articleid", referencedColumnName = "id", nullable = false)}, /** * inverseJoinColumns也就是被控方的属性, JoinColumn写中间表的属性名称, * referencedColumnName写TagModel的id, */ inverseJoinColumns = { @JoinColumn(name = "tagid", referencedColumnName = "id", nullable = false )}) public Set<TagModel> getTagModels() { return tagModels; } public void setTagModels(Set<TagModel> tagModels) { this.tagModels = tagModels; }