Вопрос относится только к полям name
и lastName
;
Существует класс User
, от которого наследуется класс Customer
. Соответственно, поля родительского класса возвращают null
. Конструктор класса Customer
имеет super
.
USER:
package com.tinychiefdelights.model;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class User {
public User(){ // Пустой конструктор для Hibernate
}
User(String name, String lastName){ // Базовый конструктор для дочерних классов
this.name = name;
this.lastName = lastName;
}
// Поля
private String login;
private String password;
private String name;
private String lastName;
@Override
public String toString() { // Без этого метода вместо инициализированных строк выводятся символы.
return "User{" +
"name='" + name + '\'' +
", lastName='" + lastName + '\'' +
'}';
}
// Методы
public void changePassword(){// Сменить пароль
}
}
ЗАКАЗЧИК:
package com.tinychiefdelights.model;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.util.List;
@Getter
@Setter
@Entity
public class Customer extends User {
public Customer(){ // Пустой конструктор для Hibernate
}
public Customer(String name, String lastName){ // Пользовательский конструктор создается,
super(name, lastName); // когда нам нужно создать новый экземпляр,
} // но у нас еще нет ID.
// Поля
private @Id @GeneratedValue Long id;
private double wallet;
// private List<Order> orderList;
// Методы
public void depositMoney(){// Внести деньги на счет
}
public void withdrawMoney(){// Вывести деньги со счета
}
public void makeOrder(){// Сделать заказ
}
}
В этом классе я передаю данные конструктор класса Customer:
LoadDatabase:
package com.tinychiefdelights;
import com.tinychiefdelights.model.Customer;
import com.tinychiefdelights.repository.CustomerRepository;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@Slf4j
public class LoadDatabase {
@Bean
CommandLineRunner initDatabase(CustomerRepository repository) { // Добавляю данные для Customer
return args -> {
log.info("Preloading " + repository.save(new Customer("Artur", "Vartanyan")));
log.info("Preloading " + repository.save(new Customer("Andrey", "Chekmaryov")));
};
}
![enter image description here](https://i.stack.imgur.com/r2LeV.png)
![enter image description here](https://i.stack.imgur.com/Oq9MJ.png)
PS Проблема не в LOMBOK, так как ошибка не исчезает при запуске приложения без него