2016-07-22 12 views
0

私はこのようなユーティリティメソッドを作成しました。指定されたエンティティクラスMyEntity.classエンティティタイプXのManagedType <X>はどのように参照できますか?

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); 
} 

ない、どのように私はManagedEntity<MyEntity>ためMyEntity_.classを参照することができますか?

私は_で後置されたクラスを見つけるべきですか?

答えて

0

私はそれを理解したと思いますが、わかりません。

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

このように私のユーティリティクラスを変更することができます。

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); 
} 
関連する問題