下面列出了怎么用javax.persistence.EntityListeners的API类实例代码及写法,或者点击链接到github查看源代码。
private EntityListeners getEntityListeners(Element tree, XMLContext.Default defaults) {
Element element = tree != null ? tree.element( "entity-listeners" ) : null;
if ( element != null ) {
List<Class> entityListenerClasses = new ArrayList<>();
for ( Element subelement : (List<Element>) element.elements( "entity-listener" ) ) {
String className = subelement.attributeValue( "class" );
try {
entityListenerClasses.add(
classLoaderAccess.classForName(
XMLContext.buildSafeClassName( className, defaults )
)
);
}
catch ( ClassLoadingException e ) {
throw new AnnotationException(
"Unable to find " + element.getPath() + ".class: " + className, e
);
}
}
AnnotationDescriptor ad = new AnnotationDescriptor( EntityListeners.class );
ad.setValue( "value", entityListenerClasses.toArray( new Class[entityListenerClasses.size()] ) );
return AnnotationFactory.create( ad );
}
else if ( defaults.canUseJavaAnnotations() ) {
return getPhysicalAnnotation( EntityListeners.class );
}
else {
return null;
}
}
@SuppressWarnings("unchecked")
@Override
public void build() throws ODataJPAModelException, ODataJPARuntimeException {
Set<javax.persistence.metamodel.EntityType<?>> jpaEntityTypes = metaModel.getEntities();
if (jpaEntityTypes == null || jpaEntityTypes.isEmpty() == true) {
return;
} else if (consistentEntityTypes == null) {
consistentEntityTypes = new EntityTypeList<EntityType>();
}
for (javax.persistence.metamodel.EntityType<?> jpaEntityType : jpaEntityTypes) {
currentEdmEntityType = new EntityType();
currentJPAEntityType = jpaEntityType;
// Check for need to Exclude
if (isExcluded(JPAEdmEntityType.this)) {
continue;
}
JPAEdmNameBuilder.build(JPAEdmEntityType.this);
JPAEdmMapping jpaEdmMapping = (JPAEdmMapping) currentEdmEntityType.getMapping();
EntityListeners entityListners = currentJPAEntityType.getJavaType().getAnnotation(EntityListeners.class);
if (entityListners != null) {
for (Class<EntityListeners> entityListner : entityListners.value()) {
if (ODataJPATombstoneEntityListener.class.isAssignableFrom(entityListner)) {
jpaEdmMapping
.setODataJPATombstoneEntityListener((Class<? extends ODataJPATombstoneEntityListener>)
(Object) entityListner);
break;
}
}
}
JPAEdmPropertyView propertyView = new JPAEdmProperty(schemaView);
propertyView.getBuilder().build();
currentEdmEntityType.setProperties(propertyView.getEdmPropertyList());
if (propertyView.getJPAEdmNavigationPropertyView() != null) {
JPAEdmNavigationPropertyView navPropView = propertyView.getJPAEdmNavigationPropertyView();
if (navPropView.getConsistentEdmNavigationProperties() != null
&& !navPropView.getConsistentEdmNavigationProperties().isEmpty()) {
currentEdmEntityType.setNavigationProperties(navPropView.getConsistentEdmNavigationProperties());
}
}
JPAEdmKeyView keyView = propertyView.getJPAEdmKeyView();
currentEdmEntityType.setKey(keyView.getEdmKey());
consistentEntityTypes.add(currentEdmEntityType);
consistentEntityTypeMap.put(currentJPAEntityType.getName(), currentEdmEntityType);
}
}