Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用接口休眠OneToMany_Java_Hibernate_Interface - Fatal编程技术网

Java 使用接口休眠OneToMany

Java 使用接口休眠OneToMany,java,hibernate,interface,Java,Hibernate,Interface,目前的问题是,我需要一个具有相同接口的不同对象的OneToMany ArrayList 例如: @Entity @Table(name = "store") public class Store { @OneToMany(mappedBy = "store") private List<Product> allProducts; } public interface Product { String getProductCode(); } @Entity

目前的问题是,我需要一个具有相同接口的不同对象的
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;
}
@实体
@表(name=“store”)
公共类商店{
@OneToMany(mappedBy=“商店”)
所有产品的私有列表;
}
公共接口产品{
字符串getProductCode();
}
@实体
@表(name=“car”)
公共级汽车工具产品{
int车轮;
}
@实体
@表(name=“计算机”)
公共类计算机产品{
字符串cpu;
}
我只想通过实现
产品
界面,轻松添加其他产品。但是hibernate给了我这个错误:
“一对多”属性值类型不应该是“产品”

我找到了一些关于这个问题的帖子,但它们都很老了(5年或更长)。他们最后都认为这在当时是不可能的

hibernate在过去5年中是否添加了任何功能来解决此问题,或者是否有其他好方法可以在同一
OneToMany
关系中添加多个对象?我不想每次添加新产品时都更新我的Store类

hibernate是否在过去5年中添加了任何功能来解决此问题 问题,或者是否有其他好方法可以在中添加多个对象 同样的一夫一妻关系?我不想更新我的商店类 每次我添加新产品时


我认为满足您需求的最佳方法是将
产品
推广到实体(或者至少使其成为映射的超类)。无论如何,注释在您的情况下可能会有所帮助,因为它用于对多态关联进行建模。

如果您使用映射的超类而不是接口,会怎么样?你能吗?@gtosto是的,我想我能。但我正试图用最干净的方式来做。在我的情况下,接口更好。这里不能使用映射超类,编译器抛出错误:“一对多”属性值类型不应为“映射超类”