Spring Hibernate找不到Onetomany关系列

时间:2019-11-21 21:53:56

标签: java spring hibernate

这是一个接近我实际代码的示例:

@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;
}

还有百里香模板,使用th:each

在表中显示了一堆

和一个将数据发送到那些模板的控制器。这些模板已经过测试,应该可以使用。

问题是,bootRun在打开页面时出现错误:

SQL.SyntaxErrorException: Unknown column 'product0_.productCategory_category'

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

2 个答案:

答案 0 :(得分:0)

ProductCategory需在name="categoryno"字段和moment("Tue Nov 26 2019 16:00:00 GMT-0800", "ddd MMM D YYYY H:m:s [GMT]ZZ").format("[/Date(]x[)/]") 上进行产品分类

答案 1 :(得分:0)

所以我已经用

解决了这个问题
@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;
}

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