java - 以编程方式访问 JPA <persistence-unit-metadata>

标签 java jpa eclipselink

是否可以访问<persistence-unit-metadata>中的信息?通过 Java API?

<persistence-unit-metadata>
    <persistence-unit-defaults>
        <schema>MySchema</schema>
    </persistence-unit-defaults>
</persistence-unit-metadata>

我想通过 JPA API 或 EclipseLink API 读取模式“MySchema”,这是我使用的实现。

类似于:entityManager.getDefaults().getSchema(); 可以转换或使用任何 EclipseLink 类,这很好。

谢谢

最佳答案

经过一段时间的调试后,我找到了访问实体架构的解决方案。

EntityType<MyEntity> entity = emf.getMetamodel().entity(MyEntity.class);

EntityTypeImpl entityTypeImpl = (EntityTypeImpl) entity;        
ClassDescriptor descriptor =  entityTypeImpl.getDescriptor();

String schema = descriptor.getDefaultTable().getTableQualifier();

寻找一种更简单、更好的方式来访问信息! 非常感谢。

关于java - 以编程方式访问 JPA <persistence-unit-metadata>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8298058/

相关文章:

java - Spring JPA可以修改实体但不能创建

java - 当 “parent” 表具有复合 PK 时,如何在 JPA 中建模一对多关系?

java - Eclipselinkfactory.createEntityManager() 在多个实例运行时停止

java - 部署队列触发的azure函数时在哪里指定连接字符串

spring - JdbcTemplate查询关闭数据库连接

java - SOAP 和 Spring

java - Eclipselink JPA ManyToOne 映射问题

java - JPA 序列生成器生成意外 ID

java - Spring Boot 应用程序无法以类路径 : [] 启动

java - Optaplanner 不使用其他 BinAvailabilty 来获取分配给事件