INNER CODE UNIT · Java
deleteAll
chaokunyang/jkes · jkes-boot/jkes-spring-data-jpa/src/main/java/com/timeyang/jkes/spring/jpa/EventSupport.java:263
private void deleteAll(Class<?> domainClass, LinkedList<Class<?>> context) {
context.addLast(domainClass);
String index = DocumentUtils.getIndexName(domainClass);
String type = DocumentUtils.getTypeName(domainClass);
EventContainer.addEvent(new Event.DeleteAllEvent(Event.EventType.DELETE_ALL, index, type, domainClass));
Set<Class<?>> cascadeClasses = getCascadeClass(domainClass, context);
cascadeClasses.forEach(clazz -> deleteAll(clazz, context));
context.removeLast();
}
private Collection<Object> getCascadeEntity(Object entity, LinkedList<Object> context) {
// Use map to address JavaBean without overriding equals and hashCode() correctly. If JavaBean override equals and hashCode() correctly, use Set() is HashSet is best choice.
Map<String, Object> entityMap = new HashMap<>();
// because jpa annotation is annotated on public method when annotated on method, so there is no need to use getDeclaredMethods and loop