Выявление измененных полей в классе Java POJO - PullRequest
0 голосов
/ 11 декабря 2018

Я получил класс Java POJO с 10+ участниками.Существует вызов API REST для сохранения / обновления данных в таблице базы данных.

Для вызова обновления, после проверки членов класса POJO, которые не равны NULL, и сохранения только тех полей в таблицу.

Я хочу записать, какие поля обновляются.Но не хочу добавлять операторы журнала во все 10+ пустых блоков проверки.

                if (POJOclass.getfield1() != null) {
                    daoObject.setfield1(POJOclass.getfield1());
                }

                if (POJOclass.getfield2() != null) {
                    daoObject.setfield2(POJOclass.getfield2());
                }

Любые предложения по реализации действительно приветствуются.

1 Ответ

0 голосов
/ 11 декабря 2018

Если я правильно понимаю, у вас может быть пользовательский метод, который проверяет ненулевые поля и непустые поля и регистрирует их (вы можете настроить, как вам будет угодно)

public static void StringNullOREmpty(Pojo po) {

    Field[] f = po.getClass().getDeclaredFields();
    Arrays.stream(f).forEach(i->{;
    i.setAccessible(true); // need to be true to access private fields of pojo class
       try {
           if(i.get(po)!=null && !i.get(po).toString().trim().isEmpty()) {
               System.out.println(i.get(po).toString()+" filed name "+i.getName());
           }
    } catch (IllegalArgumentException | IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    });

}

Пример поданного класса:

@NoArgsConstructor
@AllArgsConstructor
@Setter
@Getter
class Pojo{
    private String field1 = "hey";

    private String field2 = "hello";

    private Integer fiedl3=10;

    private String field5;

    private String field6 = ""; 

 }

Выход

hey filed name field1
hello filed name field2
10 filed name fiedl3
...