簡體   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