Я делаю свое первое Springboot веб-приложение и пытаюсь отобразить некоторую информацию с сервера postgresql.При попытке получить некоторую информацию из базы данных она возвращает пустой список.По тому, что я вижу в консоли, он пытается выполнить запрос с неправильными параметрами.
В моей БД у меня есть таблица с тремя полями: «userId», «firstName» и «surName».Из того, что я могу понять, Hibernate пытается выполнить запрос с параметрами "users0_.user_id", "users0_user_id", "users0_.sur_name".
Чтобы исправить это, я хочу написать свои собственные запросы или исправить текущий.,Как мне это сделать?
Как видите, я проверил результаты запроса с помощью некоторых операторов System.Out.print.
Первый из них возвратил list.size () из0, а второе вернуло значение NULL.
Консоль, отображающая, как мне кажется, информацию запроса
Это функция в моем классе UserController, используемая для отображенияинформация о пользователях.
@RequestMapping("/users")
public String getUsers(Model model) {
List <users>users = (List<users>) userServ.listAll();
System.out.print("THE SIZE WITH STRING CONCATINATION IS: " + users.size());
model.addAttribute("users", users);
System.out.print("THE NAME OF USER WITH INDEX =2 IS: " + userServ.getById(2).getFirstName());
return "showUsers";
}
Сущность / доменный класс для пользователя:
@Entity
@Table(name="users")
public class users implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long userId;
private String firstName;
private String surName;
private long getId() { return userId; }
public void setId(long id) {this.userId = id;}
public String getFirstName() { return firstName; }
public String getSurName() { return surName; }
public void setSurname(String surName) {this.surName = surName; }
}
Это интерфейс хранилища, используемый для извлечения пользователей из БД:
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.data.repository.CrudRepository;
import com.svein.models.users;
public interface UserRepository extends CrudRepository<users, Long> {
}
Это класс обслуживания для пользователей:
@Service
public class UserServiceImp implements userService{
@Autowired
private UserRepository userRepo;
@Override
public List<users> listAll() {
List<users> users = new ArrayList<>();
userRepo.findAll().forEach(users::add);
return users;
}
@Override
public users getById(long id) {
return userRepo.findById(id).orElseGet(users::new);
}
@Override
public users saveOrUpdate(users user) {
userRepo.save(user);
return null;
}
@Override
public void delete(Long id) {
userRepo.deleteById(id);
}
}
Я надеялся изменить или заменить текущий запрос, но, возможно, что-то не так с кодом.Как я уже сказал, я довольно новичок в этом, но подумал, что это странно, что я не написал ни одной строки SQL, а в другом проекте, который показал признаки получения нужной информации (из другой БД).Как класс узнает, что запрашивать?