根据 @OneToMany 上的 JavaDoc,如果“集合属性是使用 Java 泛型定义的”,则无需指定 targetEntity。最重要的是,您不需要在构造时实例化集合属性,但可以将其保留为空。例如:
@OneToMany(mappedBy="student")
private Collection<Qualification> qualification;
但是,正如我对泛型和类型删除的理解,在运行时可以看到的是,这是一个集合而不是资格集合 - 因为据我了解,泛型类型已经在这里被删除了。
这是如何工作的?我错过了什么?
最佳答案
感谢 Thomas W 指出这一点。您可以使用反射从类上的方法和字段获取通用类型信息,使用 Method.getGenericReturnType() 和 Field.getGenericType(),这将提供足够的信息了解这里需要做什么。
关于java - JPA的@OneToMany在运行时如何知道Generic实体类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19177646/