Hibernate获取映射实体的所有外键
我需要为所有映射的hibernate实体获取外键的列名。 有谁知道这是怎么做到的吗? 我试过sessionFactory.getClassMetadata – 我可以看到所有实体的所有属性名称和类型,但我找不到有关外键的信息。 有谁有想法吗? 我可能不使用直接数据库查询 – 我必须从hibernate元数据中提取它。
您可以使用Java Reflection:
// Loop through joined columns that has @JoinColumn annotation for (Method method : testClass.getMethods()) { if (method.isAnnotationPresent(JoinColumn.class)) { // name parameter is foreign key String foreignKey = method.getAnnotation(JoinColumn.class).name; // if the referencedColumnName is explicitly defined String foreignKey = method.getAnnotation(JoinColumn.class).referencedColumnName; } }
- java.lang.IllegalArgumentException“无法使用Spring 4和Hibernate 4设置DAO字段”
- Jersey:com.sun.jersey.spi.inject.Errors $ ErrorMessagesException
- 错误:不推荐使用PersistenceProvider,使用HibernatePersistenceProvider而不是HibernatePersistence
- JPA:@Embeddable对象如何获取对其所有者的引用?
- 使用TIMESTAMPDIFF和JPA条件查询并将hibernate作为提供者
- 使用hibernate获取更少的列
- 无法导入org.hibernate.session
- javagenerics类型参数和对这些类型的操作
- 启用Hibernate日志记录