@Component(value="blDynamicEntityDao") @Scope(value="prototype") public class DynamicEntityDaoImpl extends Object implements DynamicEntityDao, org.springframework.context.ApplicationContextAware
| Modifier and Type | Field and Description |
|---|---|
protected AppConfigurationService |
appConfigurationRemoteService |
protected org.springframework.context.ApplicationContext |
applicationContext |
protected int |
cacheEntityMetaDataTtl |
protected FieldMetadataProvider |
defaultFieldMetadataProvider |
protected DynamicDaoHelper |
dynamicDaoHelper |
protected EJB3ConfigurationDao |
ejb3ConfigurationDao |
protected EntityConfiguration |
entityConfiguration |
protected List<FieldMetadataProvider> |
fieldMetadataProviders |
protected long |
lastCacheFlushTime |
protected Metadata |
metadata |
protected static Map<String,Map<String,FieldMetadata>> |
METADATA_CACHE |
protected static Map<String,Integer> |
METADATA_CACHE_SIZES
Lifetime cache for the existence of DynamicEntityDaoImpl that just stores how many properties we have cached in METADATA_CACHE over the lifetime
of the application.
|
protected javax.persistence.EntityManager |
standardEntityManager |
protected boolean |
validateMetadataCacheSizes
Whether or not we should use
METADATA_CACHE_SIZES in the normal runtime of the application |
| Constructor and Description |
|---|
DynamicEntityDaoImpl() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
addClassToTree(Class<?> clazz,
ClassTree tree) |
protected void |
applyForeignKeyPrecedence(ForeignKey foreignField,
ForeignKey[] additionalForeignFields,
Map<String,FieldMetadata> mergedProperties) |
protected void |
applyIncludesAndExcludes(String[] includeFields,
String[] excludeFields,
String prefix,
Boolean isParentExcluded,
Map<String,FieldMetadata> mergedProperties) |
protected void |
buildBasicProperty(Field field,
Class<?> targetClass,
ForeignKey foreignField,
ForeignKey[] additionalForeignFields,
String[] additionalNonPersistentProperties,
MergedPropertyType mergedPropertyType,
Map<String,FieldMetadata> presentationAttributes,
List<org.hibernate.mapping.Property> componentProperties,
Map<String,FieldMetadata> fields,
String idProperty,
Boolean populateManyToOneFields,
String[] includeFields,
String[] excludeFields,
String configurationKey,
String ceilingEntityFullyQualifiedClassname,
List<Class<?>> parentClasses,
String prefix,
Boolean isParentExcluded,
String propertyName,
org.hibernate.type.Type type,
boolean propertyForeignKey,
int additionalForeignKeyIndexPosition,
Boolean isComponentPrefix) |
protected void |
buildComponentProperties(Class<?> targetClass,
ForeignKey foreignField,
ForeignKey[] additionalForeignFields,
String[] additionalNonPersistentProperties,
MergedPropertyType mergedPropertyType,
Map<String,FieldMetadata> fields,
String idProperty,
Boolean populateManyToOneFields,
String[] includeFields,
String[] excludeFields,
String configurationKey,
String ceilingEntityFullyQualifiedClassname,
String propertyName,
org.hibernate.type.Type type,
Class<?> returnedClass,
List<Class<?>> parentClasses,
Boolean isParentExcluded,
String prefix) |
protected void |
buildEntityProperties(Map<String,FieldMetadata> fields,
ForeignKey foreignField,
ForeignKey[] additionalForeignFields,
String[] additionalNonPersistentProperties,
Boolean populateManyToOneFields,
String[] includeFields,
String[] excludeFields,
String configurationKey,
String ceilingEntityFullyQualifiedClassname,
String propertyName,
Class<?> returnedClass,
Class<?> targetClass,
List<Class<?>> parentClasses,
String prefix,
Boolean isParentExcluded) |
protected void |
buildProperties(Class<?> targetClass,
ForeignKey foreignField,
ForeignKey[] additionalForeignFields,
String[] additionalNonPersistentProperties,
MergedPropertyType mergedPropertyType,
Map<String,FieldMetadata> presentationAttributes,
List<org.hibernate.mapping.Property> componentProperties,
Map<String,FieldMetadata> fields,
List<String> propertyNames,
List<org.hibernate.type.Type> propertyTypes,
String idProperty,
Boolean populateManyToOneFields,
String[] includeFields,
String[] excludeFields,
String configurationKey,
String ceilingEntityFullyQualifiedClassname,
List<Class<?>> parentClasses,
String prefix,
Boolean isParentExcluded,
Boolean isComponentPrefix) |
protected void |
buildPropertiesFromPolymorphicEntities(Class<?>[] entities,
ForeignKey foreignField,
String[] additionalNonPersistentProperties,
ForeignKey[] additionalForeignFields,
MergedPropertyType mergedPropertyType,
Boolean populateManyToOneFields,
String[] includeFields,
String[] excludeFields,
String configurationKey,
String ceilingEntityFullyQualifiedClassname,
Map<String,FieldMetadata> mergedProperties,
List<Class<?>> parentClasses,
String prefix,
Boolean isParentExcluded) |
void |
clear() |
protected void |
createClassTreeFromAnnotation(Class<?> clazz,
ClassTree myTree) |
org.hibernate.Criteria |
createCriteria(Class<?> entityClass) |
void |
detach(Serializable entity) |
Object |
find(Class<?> entityClass,
Object key) |
protected int |
findAdditionalForeignKeyIndex(ForeignKey[] additionalForeignFields,
String prefix,
String propertyName) |
void |
flush() |
Field[] |
getAllFields(Class<?> targetClass) |
Class<?>[] |
getAllPolymorphicEntitiesFromCeiling(Class<?> ceilingClass) |
Class<?>[] |
getAllPolymorphicEntitiesFromCeiling(Class<?> ceilingClass,
boolean includeUnqualifiedPolymorphicEntities) |
protected String |
getCacheKey(String ceilingEntityFullyQualifiedClassname,
ForeignKey foreignField,
String[] additionalNonPersistentProperties,
ForeignKey[] additionalForeignFields,
MergedPropertyType mergedPropertyType,
Boolean populateManyToOneFields,
Class<?> clazz,
String configurationKey,
Boolean isParentExcluded) |
ClassTree |
getClassTree(Class<?>[] polymorphicClasses) |
ClassTree |
getClassTreeFromCeiling(Class<?> ceilingClass) |
FieldMetadataProvider |
getDefaultFieldMetadataProvider() |
DynamicDaoHelper |
getDynamicDaoHelper() |
EJB3ConfigurationDao |
getEjb3ConfigurationDao() |
EntityConfiguration |
getEntityConfiguration() |
FieldManager |
getFieldManager() |
List<FieldMetadataProvider> |
getFieldMetadataProviders() |
Map<String,Object> |
getIdMetadata(Class<?> entityClass) |
Map<String,FieldMetadata> |
getMergedProperties(Class<?> cls)
Convenience method that obtains all of the
MergedPropertyType.PRIMARY properties for a given class. |
Map<String,FieldMetadata> |
getMergedProperties(String ceilingEntityFullyQualifiedClassname,
Class<?>[] entities,
ForeignKey foreignField,
String[] additionalNonPersistentProperties,
ForeignKey[] additionalForeignFields,
MergedPropertyType mergedPropertyType,
Boolean populateManyToOneFields,
String[] includeFields,
String[] excludeFields,
String configurationKey,
String prefix) |
protected Map<String,FieldMetadata> |
getMergedPropertiesRecursively(String ceilingEntityFullyQualifiedClassname,
Class<?>[] entities,
ForeignKey foreignField,
String[] additionalNonPersistentProperties,
ForeignKey[] additionalForeignFields,
MergedPropertyType mergedPropertyType,
Boolean populateManyToOneFields,
String[] includeFields,
String[] excludeFields,
String configurationKey,
List<Class<?>> parentClasses,
String prefix,
Boolean isParentExcluded) |
Metadata |
getMetadata() |
org.hibernate.mapping.PersistentClass |
getPersistentClass(String targetClassName)
Get the Hibernate PersistentClass instance associated with the fully-qualified
class name.
|
protected Map<String,FieldMetadata> |
getPropertiesForEntityClass(Class<?> targetClass,
ForeignKey foreignField,
String[] additionalNonPersistentProperties,
ForeignKey[] additionalForeignFields,
MergedPropertyType mergedPropertyType,
Boolean populateManyToOneFields,
String[] includeFields,
String[] excludeFields,
String configurationKey,
String ceilingEntityFullyQualifiedClassname,
List<Class<?>> parentClasses,
String prefix,
Boolean isParentExcluded) |
Map<String,FieldMetadata> |
getPropertiesForPrimitiveClass(String propertyName,
String friendlyPropertyName,
Class<?> targetClass,
Class<?> parentClass,
MergedPropertyType mergedPropertyType) |
List<String> |
getPropertyNames(Class<?> entityClass) |
List<org.hibernate.type.Type> |
getPropertyTypes(Class<?> entityClass) |
org.hibernate.SessionFactory |
getSessionFactory() |
Map<String,FieldMetadata> |
getSimpleMergedProperties(String entityName,
PersistencePerspective persistencePerspective) |
javax.persistence.EntityManager |
getStandardEntityManager() |
Class<?>[] |
getUpDownInheritance(Class<?> testClass) |
protected boolean |
isExcludeClassFromPolymorphism(Class<?> clazz) |
<T> T |
merge(T entity) |
protected String |
pad(String s,
int length,
char pad) |
<T> T |
persist(T entity) |
void |
refresh(Serializable entity) |
void |
remove(Serializable entity) |
Serializable |
retrieve(Class<?> entityClass,
Object primaryKey) |
void |
setApplicationContext(org.springframework.context.ApplicationContext applicationContext) |
void |
setDefaultFieldMetadataProvider(FieldMetadataProvider defaultFieldMetadataProvider) |
void |
setDynamicDaoHelper(DynamicDaoHelper dynamicDaoHelper) |
void |
setEjb3ConfigurationDao(EJB3ConfigurationDao ejb3ConfigurationDao) |
void |
setEntityConfiguration(EntityConfiguration entityConfiguration) |
protected boolean |
setExcludedBasedOnShowIfProperty(FieldMetadata fieldMetadata) |
void |
setFieldMetadataProviders(List<FieldMetadataProvider> fieldMetadataProviders) |
void |
setMetadata(Metadata metadata) |
void |
setStandardEntityManager(javax.persistence.EntityManager entityManager) |
Class<?>[] |
sortEntities(Class<?> ceilingClass,
List<Class<?>> entities) |
protected boolean |
testForeignProperty(ForeignKey foreignField,
String prefix,
String propertyName) |
Boolean |
testPropertyInclusion(FieldMetadata presentationAttribute) |
protected Boolean |
testPropertyRecursion(String prefix,
List<Class<?>> parentClasses,
String propertyName,
Class<?> targetClass,
String ceilingEntityFullyQualifiedClassname,
Boolean isComponentPrefix) |
boolean |
useCache() |
protected static final Map<String,Map<String,FieldMetadata>> METADATA_CACHE
protected static final Map<String,Integer> METADATA_CACHE_SIZES
protected javax.persistence.EntityManager standardEntityManager
protected Metadata metadata
protected EJB3ConfigurationDao ejb3ConfigurationDao
protected EntityConfiguration entityConfiguration
protected List<FieldMetadataProvider> fieldMetadataProviders
protected FieldMetadataProvider defaultFieldMetadataProvider
protected AppConfigurationService appConfigurationRemoteService
protected DynamicDaoHelper dynamicDaoHelper
@Value(value="${cache.entity.dao.metadata.ttl}")
protected int cacheEntityMetaDataTtl
@Value(value="${validate.metadata.cache.sizes:false}")
protected boolean validateMetadataCacheSizes
METADATA_CACHE_SIZES in the normal runtime of the applicationprotected long lastCacheFlushTime
protected org.springframework.context.ApplicationContext applicationContext
public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
throws org.springframework.beans.BeansException
setApplicationContext in interface org.springframework.context.ApplicationContextAwareorg.springframework.beans.BeansExceptionpublic org.hibernate.Criteria createCriteria(Class<?> entityClass)
createCriteria in interface DynamicEntityDaopublic <T> T persist(T entity)
persist in interface DynamicEntityDaopublic Object find(Class<?> entityClass, Object key)
find in interface DynamicEntityDaopublic <T> T merge(T entity)
merge in interface DynamicEntityDaopublic void flush()
flush in interface DynamicEntityDaopublic void detach(Serializable entity)
detach in interface DynamicEntityDaopublic void refresh(Serializable entity)
refresh in interface DynamicEntityDaopublic Serializable retrieve(Class<?> entityClass, Object primaryKey)
retrieve in interface DynamicEntityDaopublic void remove(Serializable entity)
remove in interface DynamicEntityDaopublic void clear()
clear in interface DynamicEntityDaopublic org.hibernate.mapping.PersistentClass getPersistentClass(String targetClassName)
DynamicEntityDaogetPersistentClass in interface DynamicEntityDaopublic boolean useCache()
useCache in interface DynamicEntityDaopublic Class<?>[] getAllPolymorphicEntitiesFromCeiling(Class<?> ceilingClass)
getAllPolymorphicEntitiesFromCeiling in interface DynamicEntityDaopublic Class<?>[] getAllPolymorphicEntitiesFromCeiling(Class<?> ceilingClass, boolean includeUnqualifiedPolymorphicEntities)
getAllPolymorphicEntitiesFromCeiling in interface DynamicEntityDaopublic Class<?>[] getUpDownInheritance(Class<?> testClass)
getUpDownInheritance in interface DynamicEntityDaoprotected void createClassTreeFromAnnotation(Class<?> clazz, ClassTree myTree)
public ClassTree getClassTree(Class<?>[] polymorphicClasses)
getClassTree in interface DynamicEntityDaopublic ClassTree getClassTreeFromCeiling(Class<?> ceilingClass)
getClassTreeFromCeiling in interface DynamicEntityDaopublic Map<String,FieldMetadata> getSimpleMergedProperties(String entityName, PersistencePerspective persistencePerspective)
getSimpleMergedProperties in interface DynamicEntityDaopublic Map<String,FieldMetadata> getMergedProperties(@Nonnull Class<?> cls)
DynamicEntityDaoMergedPropertyType.PRIMARY properties for a given class. Delegates to
DynamicEntityDao.getMergedProperties(String, Class[], ForeignKey, String[], ForeignKey[], MergedPropertyType, Boolean, String[], String[], String, String)getMergedProperties in interface DynamicEntityDaopublic Map<String,FieldMetadata> getMergedProperties(String ceilingEntityFullyQualifiedClassname, Class<?>[] entities, ForeignKey foreignField, String[] additionalNonPersistentProperties, ForeignKey[] additionalForeignFields, MergedPropertyType mergedPropertyType, Boolean populateManyToOneFields, String[] includeFields, String[] excludeFields, String configurationKey, String prefix)
getMergedProperties in interface DynamicEntityDaoprotected Map<String,FieldMetadata> getMergedPropertiesRecursively(String ceilingEntityFullyQualifiedClassname, Class<?>[] entities, ForeignKey foreignField, String[] additionalNonPersistentProperties, ForeignKey[] additionalForeignFields, MergedPropertyType mergedPropertyType, Boolean populateManyToOneFields, String[] includeFields, String[] excludeFields, String configurationKey, List<Class<?>> parentClasses, String prefix, Boolean isParentExcluded)
protected void applyForeignKeyPrecedence(ForeignKey foreignField, ForeignKey[] additionalForeignFields, Map<String,FieldMetadata> mergedProperties)
protected void applyIncludesAndExcludes(String[] includeFields, String[] excludeFields, String prefix, Boolean isParentExcluded, Map<String,FieldMetadata> mergedProperties)
protected String getCacheKey(String ceilingEntityFullyQualifiedClassname, ForeignKey foreignField, String[] additionalNonPersistentProperties, ForeignKey[] additionalForeignFields, MergedPropertyType mergedPropertyType, Boolean populateManyToOneFields, Class<?> clazz, String configurationKey, Boolean isParentExcluded)
protected void buildPropertiesFromPolymorphicEntities(Class<?>[] entities, ForeignKey foreignField, String[] additionalNonPersistentProperties, ForeignKey[] additionalForeignFields, MergedPropertyType mergedPropertyType, Boolean populateManyToOneFields, String[] includeFields, String[] excludeFields, String configurationKey, String ceilingEntityFullyQualifiedClassname, Map<String,FieldMetadata> mergedProperties, List<Class<?>> parentClasses, String prefix, Boolean isParentExcluded)
public Field[] getAllFields(Class<?> targetClass)
getAllFields in interface DynamicEntityDaopublic Map<String,FieldMetadata> getPropertiesForPrimitiveClass(String propertyName, String friendlyPropertyName, Class<?> targetClass, Class<?> parentClass, MergedPropertyType mergedPropertyType)
getPropertiesForPrimitiveClass in interface DynamicEntityDaopublic org.hibernate.SessionFactory getSessionFactory()
getSessionFactory in interface DynamicEntityDaopublic Map<String,Object> getIdMetadata(Class<?> entityClass)
getIdMetadata in interface DynamicEntityDaopublic List<String> getPropertyNames(Class<?> entityClass)
getPropertyNames in interface DynamicEntityDaopublic List<org.hibernate.type.Type> getPropertyTypes(Class<?> entityClass)
getPropertyTypes in interface DynamicEntityDaoprotected Map<String,FieldMetadata> getPropertiesForEntityClass(Class<?> targetClass, ForeignKey foreignField, String[] additionalNonPersistentProperties, ForeignKey[] additionalForeignFields, MergedPropertyType mergedPropertyType, Boolean populateManyToOneFields, String[] includeFields, String[] excludeFields, String configurationKey, String ceilingEntityFullyQualifiedClassname, List<Class<?>> parentClasses, String prefix, Boolean isParentExcluded)
protected void buildProperties(Class<?> targetClass, ForeignKey foreignField, ForeignKey[] additionalForeignFields, String[] additionalNonPersistentProperties, MergedPropertyType mergedPropertyType, Map<String,FieldMetadata> presentationAttributes, List<org.hibernate.mapping.Property> componentProperties, Map<String,FieldMetadata> fields, List<String> propertyNames, List<org.hibernate.type.Type> propertyTypes, String idProperty, Boolean populateManyToOneFields, String[] includeFields, String[] excludeFields, String configurationKey, String ceilingEntityFullyQualifiedClassname, List<Class<?>> parentClasses, String prefix, Boolean isParentExcluded, Boolean isComponentPrefix)
public Boolean testPropertyInclusion(FieldMetadata presentationAttribute)
protected boolean setExcludedBasedOnShowIfProperty(FieldMetadata fieldMetadata)
protected Boolean testPropertyRecursion(String prefix, List<Class<?>> parentClasses, String propertyName, Class<?> targetClass, String ceilingEntityFullyQualifiedClassname, Boolean isComponentPrefix)
protected void buildBasicProperty(Field field, Class<?> targetClass, ForeignKey foreignField, ForeignKey[] additionalForeignFields, String[] additionalNonPersistentProperties, MergedPropertyType mergedPropertyType, Map<String,FieldMetadata> presentationAttributes, List<org.hibernate.mapping.Property> componentProperties, Map<String,FieldMetadata> fields, String idProperty, Boolean populateManyToOneFields, String[] includeFields, String[] excludeFields, String configurationKey, String ceilingEntityFullyQualifiedClassname, List<Class<?>> parentClasses, String prefix, Boolean isParentExcluded, String propertyName, org.hibernate.type.Type type, boolean propertyForeignKey, int additionalForeignKeyIndexPosition, Boolean isComponentPrefix)
protected boolean testForeignProperty(ForeignKey foreignField, String prefix, String propertyName)
protected int findAdditionalForeignKeyIndex(ForeignKey[] additionalForeignFields, String prefix, String propertyName)
protected void buildEntityProperties(Map<String,FieldMetadata> fields, ForeignKey foreignField, ForeignKey[] additionalForeignFields, String[] additionalNonPersistentProperties, Boolean populateManyToOneFields, String[] includeFields, String[] excludeFields, String configurationKey, String ceilingEntityFullyQualifiedClassname, String propertyName, Class<?> returnedClass, Class<?> targetClass, List<Class<?>> parentClasses, String prefix, Boolean isParentExcluded)
protected void buildComponentProperties(Class<?> targetClass, ForeignKey foreignField, ForeignKey[] additionalForeignFields, String[] additionalNonPersistentProperties, MergedPropertyType mergedPropertyType, Map<String,FieldMetadata> fields, String idProperty, Boolean populateManyToOneFields, String[] includeFields, String[] excludeFields, String configurationKey, String ceilingEntityFullyQualifiedClassname, String propertyName, org.hibernate.type.Type type, Class<?> returnedClass, List<Class<?>> parentClasses, Boolean isParentExcluded, String prefix)
public javax.persistence.EntityManager getStandardEntityManager()
getStandardEntityManager in interface DynamicEntityDaopublic void setStandardEntityManager(javax.persistence.EntityManager entityManager)
setStandardEntityManager in interface DynamicEntityDaopublic EJB3ConfigurationDao getEjb3ConfigurationDao()
getEjb3ConfigurationDao in interface DynamicEntityDaopublic void setEjb3ConfigurationDao(EJB3ConfigurationDao ejb3ConfigurationDao)
public FieldManager getFieldManager()
getFieldManager in interface DynamicEntityDaopublic EntityConfiguration getEntityConfiguration()
getEntityConfiguration in interface DynamicEntityDaopublic void setEntityConfiguration(EntityConfiguration entityConfiguration)
setEntityConfiguration in interface DynamicEntityDaopublic Metadata getMetadata()
getMetadata in interface DynamicEntityDaopublic void setMetadata(Metadata metadata)
setMetadata in interface DynamicEntityDaopublic List<FieldMetadataProvider> getFieldMetadataProviders()
public void setFieldMetadataProviders(List<FieldMetadataProvider> fieldMetadataProviders)
public FieldMetadataProvider getDefaultFieldMetadataProvider()
getDefaultFieldMetadataProvider in interface DynamicEntityDaopublic void setDefaultFieldMetadataProvider(FieldMetadataProvider defaultFieldMetadataProvider)
protected boolean isExcludeClassFromPolymorphism(Class<?> clazz)
public DynamicDaoHelper getDynamicDaoHelper()
getDynamicDaoHelper in interface DynamicEntityDaopublic void setDynamicDaoHelper(DynamicDaoHelper dynamicDaoHelper)
Copyright © 2017. All rights reserved.