public String[] getIdentifierName() { if(idPropertiesArray != null) { return idPropertiesArray; } List<String> idProperties = new ArrayList<>(); ClassPropertyFetcher cpf = ClassPropertyFetcher.forClass(entity.getJavaClass()); for (MetaProperty metaProperty : cpf.getMetaProperties()) { int modifiers = metaProperty.getModifiers(); if(Modifier.isStatic(modifiers) || Modifier.isAbstract(modifiers)) { continue; } PropertyDescriptor pd = propertyFactory.createPropertyDescriptor(entity.getJavaClass(), metaProperty); if(pd != null) { if (hasAnnotation(cpf, pd, Id.class)) { idProperties.add(metaProperty.getName()); } else if (hasAnnotation(cpf, pd, EmbeddedId.class)) { idProperties.add(metaProperty.getName()); } } } if(idProperties.isEmpty()) { // default to just use 'id' idProperties.add(GormProperties.IDENTITY); } idPropertiesArray = idProperties.toArray(new String[idProperties.size()]); return idPropertiesArray; }
PropertyDescriptor descriptor = propertyFactory.createPropertyDescriptor(entityClass, metaProperty);
PropertyDescriptor propertyDescriptor = propertyFactory.createPropertyDescriptor(entity.getJavaClass(), metaProperty); if(propertyDescriptor == null) { continue;