0

I created a utility method look like this.

public static <T extends BaseEntity> Optional<T> findByUri(
        final EntityManager entityManager,
        final Class<T> entityClass,
        final ManagedType<? super T> entityType,
        final Supplier<String> uriSupplier) {
    return findByUniqueAttribute(
            entityManager,
            entityClass,
            () -> entityType.getSingularAttribute(
                    PersistenceConstants.URI_ATTRIBUTE_NAME, String.class),
            uriSupplier);
}

Not with given entity class MyEntity.class, how can I refer MyEntity_.class for ManagedEntity<MyEntity>?

Should I just find the class postfixed with _?

Jin Kwon
  • 20,295
  • 14
  • 115
  • 184

1 Answers1

0

I think I figured it out but I'm not sure.

final EntityType<MyEntity> entityType =
    entityManager.getMetamodel().entity(MyEntity.class)

I can change my utility class like this.

public static <T extends BaseEntity> Optional<T> findByUri(
        final EntityManager entityManager,
        final Class<T> entityClass,
        final Supplier<String> uriSupplier) {
    return findByUniqueAttribute(
            entityManager,
            entityClass,
            () -> entityManager.getMetamodel().entity(entityClass)
            .getSingularAttribute(
                    PersistenceConstants.URI_ATTRIBUTE_NAME, String.class),
            uriSupplier);
}
Jin Kwon
  • 20,295
  • 14
  • 115
  • 184