keycloak
静的公開メンバ関数 | 静的公開変数類 | 全メンバ一覧
org.keycloak.connections.jpa.util.JpaUtils クラス
org.keycloak.connections.jpa.util.JpaUtils 連携図
Collaboration graph

静的公開メンバ関数

static String getTableNameForNativeQuery (String tableName, EntityManager em)
 
static EntityManagerFactory createEntityManagerFactory (KeycloakSession session, String unitName, Map< String, Object > properties, ClassLoader classLoader, boolean jta)
 
static List< Class<?> > getProvidedEntities (KeycloakSession session)
 
static String getCustomChangelogTableName (String jpaEntityProviderFactoryId)
 

静的公開変数類

static final String HIBERNATE_DEFAULT_SCHEMA = "hibernate.default_schema"
 

詳解

著者
Marek Posolda

関数詳解

◆ createEntityManagerFactory()

static EntityManagerFactory org.keycloak.connections.jpa.util.JpaUtils.createEntityManagerFactory ( KeycloakSession  session,
String  unitName,
Map< String, Object >  properties,
ClassLoader  classLoader,
boolean  jta 
)
inlinestatic
48  {
49  PersistenceUnitTransactionType txType = jta ? PersistenceUnitTransactionType.JTA : PersistenceUnitTransactionType.RESOURCE_LOCAL;
50  PersistenceXmlParser parser = new PersistenceXmlParser(new ClassLoaderServiceImpl(classLoader), txType);
51  List<ParsedPersistenceXmlDescriptor> persistenceUnits = parser.doResolve(properties);
52  for (ParsedPersistenceXmlDescriptor persistenceUnit : persistenceUnits) {
53  if (persistenceUnit.getName().equals(unitName)) {
54  List<Class<?>> providedEntities = getProvidedEntities(session);
55  for (Class<?> entityClass : providedEntities) {
56  // Add all extra entity classes to the persistence unit.
57  persistenceUnit.addClasses(entityClass.getName());
58  }
59  // Now build the entity manager factory, supplying a proxy classloader, so Hibernate will be able
60  // to find and load the extra provided entities. Set the provided classloader as parent classloader.
61  persistenceUnit.setTransactionType(txType);
62  return Bootstrap.getEntityManagerFactoryBuilder(persistenceUnit, properties,
63  new ProxyClassLoader(providedEntities, classLoader)).build();
64  }
65  }
66  throw new RuntimeException("Persistence unit '" + unitName + "' not found");
67  }
static List< Class<?> > getProvidedEntities(KeycloakSession session)
Definition: JpaUtils.java:75

◆ getCustomChangelogTableName()

static String org.keycloak.connections.jpa.util.JpaUtils.getCustomChangelogTableName ( String  jpaEntityProviderFactoryId)
inlinestatic

Get the name of custom table for liquibase updates for give ID of JpaEntityProvider

引数
jpaEntityProviderFactoryId
戻り値
table name
91  {
92  String upperCased = jpaEntityProviderFactoryId.toUpperCase();
93  upperCased = upperCased.replaceAll("-", "_");
94  upperCased = upperCased.replaceAll("[^A-Z_]", "");
95  return "DATABASECHANGELOG_" + upperCased.substring(0, Math.min(10, upperCased.length()));
96  }

◆ getProvidedEntities()

static List<Class<?> > org.keycloak.connections.jpa.util.JpaUtils.getProvidedEntities ( KeycloakSession  session)
inlinestatic

Get a list of all provided entities by looping over all configured entity providers.

引数
sessionthe keycloak session
戻り値
a list of all provided entities (can be an empty list)
75  {
76  List<Class<?>> providedEntityClasses = new ArrayList<>();
77  // Get all configured entity providers.
78  Set<JpaEntityProvider> entityProviders = session.getAllProviders(JpaEntityProvider.class);
79  // For every provider, add all entity classes to the list.
80  for (JpaEntityProvider entityProvider : entityProviders) {
81  providedEntityClasses.addAll(entityProvider.getEntities());
82  }
83  return providedEntityClasses;
84  }

◆ getTableNameForNativeQuery()

static String org.keycloak.connections.jpa.util.JpaUtils.getTableNameForNativeQuery ( String  tableName,
EntityManager  em 
)
inlinestatic
43  {
44  String schema = (String) em.getEntityManagerFactory().getProperties().get(HIBERNATE_DEFAULT_SCHEMA);
45  return (schema==null) ? tableName : schema + "." + tableName;
46  }
static final String HIBERNATE_DEFAULT_SCHEMA
Definition: JpaUtils.java:41

メンバ詳解

◆ HIBERNATE_DEFAULT_SCHEMA

final String org.keycloak.connections.jpa.util.JpaUtils.HIBERNATE_DEFAULT_SCHEMA = "hibernate.default_schema"
static

このクラス詳解は次のファイルから抽出されました: