Java 限制儿童的休眠标准

Java 限制儿童的休眠标准,java,mysql,hibernate,spring-boot,Java,Mysql,Hibernate,Spring Boot,我上了一堂简单的课 @Entity(name = "tag") public class Tag { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") protected long id; @Column(name = "tag", nullable = false) private String tag; public Tag()

我上了一堂简单的课

@Entity(name = "tag")
public class Tag
{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    protected long id;

    @Column(name = "tag", nullable = false)
    private String tag;

    public Tag()
    {
    }

    public long getId()
    {
        return id;
    }

    public void setId(long id)
    {
        this.id = id;
    }

    public String getTag()
    {
        return tag;
    }

    public void setTag(String tag)
    {
        this.tag = tag;
    }
}
它作为列表驻留在另一个类中,并通过

@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "entry_tag_list", joinColumns = {
        @JoinColumn(referencedColumnName = "id", nullable = false)}, inverseJoinColumns = {
        @JoinColumn(referencedColumnName = "id", nullable = false)})
@Fetch(FetchMode.SELECT)
private List<Tag> tags;
我明白了

我确保我的getter和setter是getTags和setTags,所以我不确定我遗漏了什么

作为旁注,我必须使用
@Fetch(FetchMode.SELECT)
,因为很多查询都依赖于它。

像这样试试

cr.createAlias("tags", "tagsAlias");
cr.add(Restrictions.eq("tagsAlias.tag", tag);
像这样试试

cr.createAlias("tags", "tagsAlias");
cr.add(Restrictions.eq("tagsAlias.tag", tag);

您需要创建一个联接以在关联中导航,如标准javadoc中所述。您需要创建一个联接以在关联中导航,如标准javadoc中所述。要创建联接,需要生成别名。要创建联接,需要生成别名。
cr.createAlias("tags", "tagsAlias");
cr.add(Restrictions.eq("tagsAlias.tag", tag);