java - JPA的@OneToMany在运行时如何知道Generic实体类型

标签 java generics jpa

根据 @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/

相关文章:

java - 理解 JPA、EJB3 和 Web 服务

java - TreeViewer 中的项目装饰

java.lang.ArrayIndexOutOfBoundsException : 41981 during tomcat start 异常

c# - 我应该在接口(interface)上使用反引号约定吗?

java - 带参数传递 Callable<T>

java - 使用@Inheritance JPA属性时插入顺序无效

java - 抽象类中的静态类

java - 发电机 : ConditionalCheckFailedException

scala - 在 Scala 中调用泛型类型的 "static function"

postgresql - 使用 JPA (EclipseLink) 创建 "text[]"等 PostgreSQL 数组类型