Концептуально lombok работает во время компиляции, поэтому во время компиляции он генерирует некоторый код.
Использование приведенных выше аннотаций приводит к ситуации, когда конструктор с подписью: public OverdueProcessDTO(String, String, int)
не создается.
Затем, во время выполнения Hibernate, кажется, ищет такой конструктор и не находит его, следовательно, исключение.
Когда вы раскомментируете рукописный конструктор, lombok не сгенерирует ничего, что мешает вашему "ручное" определение, следовательно, оно работает.
Теперь о разрешении: я предлагаю использовать инструмент под названием «деломбок» - он может показать вам, что именно было создано ломбоком. Чтобы вы могли самостоятельно проверить, существует ли конструктор, требуемый Hibernate, или нет.
В настоящее время код java, сгенерированный lombok для DTO:
public class OverdueProcessDTO extends Process {
private int count;
protected OverdueProcessDTO(OverdueProcessDTOBuilder<?, ?> b) {
super(b);
this.count = b.count;
}
public static OverdueProcessDTOBuilder<?, ?> builder() {
return new OverdueProcessDTOBuilderImpl();
}
public int getCount() {
return this.count;
}
public void setCount(int count) {
this.count = count;
}
public static abstract class OverdueProcessDTOBuilder<C extends OverdueProcessDTO, B extends OverdueProcessDTO.OverdueProcessDTOBuilder<C, B>> extends Process.ProcessBuilder<C, B> {
private int count;
public B count(int count) {
this.count = count;
return self();
}
protected abstract B self();
public abstract C build();
public String toString() {
return "OverdueProcessDTO.OverdueProcessDTOBuilder(super=" + super.toString() + ", count=" + this.count + ")";
}
}
private static final class OverdueProcessDTOBuilderImpl extends OverdueProcessDTOBuilder<OverdueProcessDTO, OverdueProcessDTOBuilderImpl> {
private OverdueProcessDTOBuilderImpl() {
}
protected OverdueProcessDTO.OverdueProcessDTOBuilderImpl self() {
return this;
}
public OverdueProcessDTO build() {
return new OverdueProcessDTO(this);
}
}
}