目前我遇到的问题是需要OneToMany ArrayList
个具有相同界面的不同对象。
例如:
@Entity
@Table(name = "store")
public class Store {
@OneToMany(mappedBy = "store")
private List<Product> allProducts;
}
public interface Product {
String getProductCode();
}
@Entity
@Table(name = "car")
public class Car implements Product{
int wheels;
}
@Entity
@Table(name = "computer")
public class Computer implements Product{
String cpu;
}
我只想通过实现Product
接口轻松添加其他产品。但是hibernate给了我这个错误:'One To Many' attribute value type should not be 'Product'
。
我发现了一些关于这个问题的帖子,但它们已经很老了(5年或更久)。他们都认为当时这是不可能的。
hibernate在过去5年中是否添加了任何功能来解决此问题,还是有其他任何好方法可以在同一OneToMany
关系中添加多个对象?每次添加新产品时,我都不想更新Store类。
答案 0 :(得分:1)
在过去5年中,hibernate是否添加了任何功能来解决此问题 问题还是有任何其他好的方法来添加多个对象 同一个OneToMany关系?我不想更新我的Store类 我每次添加新产品。
我认为满足您需求的最佳方式是将 Product
提升为实体(或者至少使其成为映射的SuperClass)。无论如何,@Any注释可以帮助你的情况,用于模拟多态关联。