java - 从 JPA 获取 @Id 的 DataType

标签 java hibernate reflection jpa

我正在编写一个库,该库将用于通过 JPA hibernate 多种类型的 EJB。从 JPA 加载 EJB 时,库需要使用 @Id 注释的字段的数据类型。 @Id 可以注释在 EJB 的父类(super class)上。 Hibernate或JPA中是否有方法可以获取@Id的数据类型?

我很想使用反射,但这需要递归和 JPA 中可能已经存在的代码。

最佳答案

如果你可以访问Hibernate SessionFactory,你可以调用sf.getClassMetaData("Your.Class.Name").getIdentifierType().getReturnedClass()(记住检查该代码是否为空;)

关于java - 从 JPA 获取 @Id 的 DataType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1296089/

相关文章:

java - 使用 JSch,有没有办法在不执行 ls 的情况下判断远程文件是否存在?

java - 如何在 Java 中修剪字符串中的 Unicode\u0085 字符

spring - 如何在 Tomcat 上使用 JPA、Hibernate 和 Spring 避免类加载器泄漏

hibernate - java.lang.ClassCastException : org. springframework.orm.hibernate5.SessionHolder 无法转换为 org.springframework.orm.jpa.EntityManagerHolder

c++ - C++类中添加成员导致编译时错误的技巧

c# - 使用 EventArgs 中的可写属性向事件调用者提供反馈

java - Sentry:我需要使用Sentry.capture()吗?

java - 在 Hadoop 上执行 java 程序

java - JPQL 和 HQL 如何结合 INNER JOIN 和 LEFT JOIN

C#。使用反射设置成员对象值