繁体   English   中英

Spring hibernate 未找到单对多关系列

[英]Spring hibernate does not find column of onetomany relationship

所以这是一个接近我的实际代码的例子:

@Entity
@Table(name="Products")
@Data
public class Product{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="productno")
    private long ID;

    @Column(name="name")
    private String productName;

    private ProductCategory category;
}
@Entity
@Table(name="Category")
@Data
public class ProductCategory{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="categoryno")
    private long ID;

    @Column(name="name")
    private String categoryName;

    @OneToMany
    @JoinColumn(name="category")
    private List<Product> product;
}

以及一个 thymeleaf 模板,它使用 th:each 在表格中显示一堆

以及将数据发送到这些模板的 controller。 这些模板已经过测试,它们应该可以工作。

问题是,当bootRun和打开页面时,我得到一个错误:

SQL.SyntaxErrorException: Unknown column 'product0_.productCategory_category'

查看此错误,似乎它试图将连接列名称读取为productCategory_category而不仅仅是category (这是所需的)

@JoinColumn需要 go 在ProductCategory字段上的 Product class 和name="categoryno"

所以我已经解决了这个问题

@Entity
@Table(name="Products")
@Data
public class Product{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="productno")
    private long ID;

    @Column(name="name")
    private String productName;

    @ManyToOne
    @JoinColumn(name="category", referencedColumnName="categoryno")
    private ProductCategory category;
}
@Entity
@Table(name="Category")
@Data
public class ProductCategory{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="categoryno")
    private long ID;

    @Column(name="name")
    private String categoryName;

    @OneToMany(mappedBy="category")
    private List<Product> product;
}

我不知道为什么会这样,但是嘿:魔法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM