Весенний отдых данных с ResourceMetadata.getMappingFor

Пружинный отдых данных Метод ResourceMetadata.getMappingFor неверен

если сущность имеет базовость. ResourceDescription свойства основного объекта получает те же сообщения

введите описание изображения здесь код здесь

private void saveProperty(PersistentProperty<?> property) {
    // TODO Auto-generated method stub
    String propertyName = property.getName();
    String propertyType = property.getType().getName();
    PersistentEntity<?, ?> entity = property.getOwner();
    String entityName = entity.getName();
    String name = entityName + "." + propertyName;
    MasterTableEntity masterTableEntity = masterTableDao.getByName(entityName);
    MasterPropertyEntity masterPropertyEntity = masterPropertyDao.getByName(name);
    if (masterPropertyEntity == null) {
        masterPropertyEntity = new MasterPropertyEntity();
        masterPropertyEntity.setName(name);
    }
    ResourceMetadata metadata = resourceMappings.getMetadataFor(entity.getType());
    ResourceDescription entityDescription = metadata.getDescription();
    String entityMessageCode = entityDescription.getMessage();
    masterPropertyEntity.setEntityMessageCode(entityMessageCode);
    ResourceMapping propertyMapping = metadata.getMappingFor(property);
    ResourceDescription description = propertyMapping.getDescription();
    String messageCode = description.getMessage();
    masterPropertyEntity.setMessageCode(messageCode);
    masterPropertyEntity.setPropertyName(propertyName);
    masterPropertyEntity.setPropertyType(propertyType);
    masterPropertyEntity.setTable(masterTableEntity);
    Field field = property.getField();
    Annotation[] annotations = field.getAnnotations();
    for (Annotation annotation : annotations) {
        if (annotation instanceof Column) {
            Column column = (Column) annotation;
            masterPropertyEntity.setColumnName(column.name());
            masterPropertyEntity.setColumnUnique(column.unique());
            masterPropertyEntity.setColumnNullable(column.nullable());
            masterPropertyEntity.setColumnInsertable(column.insertable());
            masterPropertyEntity.setColumnUpdatable(column.updatable());
            masterPropertyEntity.setColumnDefinition(column.columnDefinition());
            masterPropertyEntity.setColumnTable(column.table());
            masterPropertyEntity.setColumnLength(column.length());
            masterPropertyEntity.setColumnPrecision(column.precision());
            masterPropertyEntity.setColumnScale(column.scale());
            break;
        } else if (annotation instanceof JoinColumn) {
            JoinColumn joinColumn = (JoinColumn) annotation;
            masterPropertyEntity.setColumnName(joinColumn.name());
            masterPropertyEntity.setReferencedColumnName(joinColumn.referencedColumnName());
            masterPropertyEntity.setColumnUnique(joinColumn.unique());
            masterPropertyEntity.setColumnNullable(joinColumn.nullable());
            masterPropertyEntity.setColumnInsertable(joinColumn.insertable());
            masterPropertyEntity.setColumnUpdatable(joinColumn.updatable());
            masterPropertyEntity.setColumnDefinition(joinColumn.columnDefinition());
            masterPropertyEntity.setColumnTable(joinColumn.table());
            break;
        }
    }
    masterPropertyDao.save(masterPropertyEntity);
}

0 ответов

Другие вопросы по тегам