[英]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.