public String[] getSearchFieldsForEntity(Class<?> entityClass) { String[] ret = emf.getSearchFieldsForEntity(entityClass).keySet().toArray(new String[] {}); List<String> list = emf.runInTrans((emgr) -> { FullTextEntityManager femg = emgr.getFullTextEntityManager(); SearchFactory sf = femg.getSearchFactory(); IndexedTypeDescriptor itd = sf.getIndexedTypeDescriptor(entityClass); return itd.getIndexedProperties().stream().map((desc) -> desc.getName()).collect(Collectors.toList()); }); if (ret.length <= list.size()) { return list.toArray(new String[] {}); } return ret; }
public String getIndexDescription(Class<?> entityClass) { StringBuilder sb = new StringBuilder(); emf.runInTrans((emgr) -> { sb.append("class: ").append(entityClass.getName()).append("\n"); FullTextEntityManager femg = emgr.getFullTextEntityManager(); SearchFactory sf = femg.getSearchFactory(); IndexedTypeDescriptor itd = sf.getIndexedTypeDescriptor(entityClass); List<String> fields = itd.getIndexedProperties().stream().map((desc) -> desc.getName()) .collect(Collectors.toList()); sb.append("\nFields: ").append(StringUtils.join(fields, ", ")).append("\n"); IndexedTypeDescriptor descr = sf.getIndexedTypeDescriptor(entityClass); sb.append("\nIndexedTypeDescriptor: indexed: ").append(descr.isIndexed()).append("\nFields:\n"); for (FieldDescriptor field : descr.getIndexedFields()) { sb.append(" ").append(field).append("<br?\n"); } sb.append("\nProperties: \n"); for (PropertyDescriptor ip : descr.getIndexedProperties()) { sb.append(" ").append(ip).append("\n"); } sb.append("\nIndexe: \n"); for (IndexDescriptor ides : descr.getIndexDescriptors()) { sb.append(" ").append(ides).append("\n"); } String[] sfields = getSearchFieldsForEntity(entityClass); sb.append("\nSearchFields: ").append(StringUtils.join(sfields, ",")).append("\n"); return null; }); return sb.toString(); }