@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 javax.persistence.EntityManager |
standardEntityManager |
| 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(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(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() |
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) |
protected boolean |
useCache() |
protected static final Map<String,Map<String,FieldMetadata>> METADATA_CACHE
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
protected 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 DynamicEntityDaoprotected boolean useCache()
public Class<?>[] getAllPolymorphicEntitiesFromCeiling(Class<?> ceilingClass)
getAllPolymorphicEntitiesFromCeiling in interface DynamicEntityDaopublic Class<?>[] getAllPolymorphicEntitiesFromCeiling(Class<?> ceilingClass, boolean includeUnqualifiedPolymorphicEntities)
getAllPolymorphicEntitiesFromCeiling 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(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(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()
public 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()
public void setDynamicDaoHelper(DynamicDaoHelper dynamicDaoHelper)
Copyright © 2014. All rights reserved.