Я учусь использовать Spring JPA и настроил свою базу данных для успешного добавления элементов в мою базу данных.У меня просто возникают проблемы при формулировке запроса для получения моих результатов (список сотрудников, отфильтрованный по фамилии):
// Сущность сотрудника:
@Entity
public class Employee {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
long id;
String firstName;
String lastName;
public Employee() { }
public Employee(long id, String firstName, String lastName) {
super();
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((firstName == null) ? 0 : firstName.hashCode());
result = prime * result + (int) (id ^ (id >>> 32));
result = prime * result + ((lastName == null) ? 0 : lastName.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Employee other = (Employee) obj;
if (firstName == null) {
if (other.firstName != null)
return false;
} else if (!firstName.equals(other.firstName))
return false;
if (id != other.id)
return false;
if (lastName == null) {
if (other.lastName != null)
return false;
} else if (!lastName.equals(other.lastName))
return false;
return true;
}
@Override
public String toString() {
return "Employee [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + "]";
}
}
И моя проблема заключается взапрос в моем интерфейсе хранилища ниже.При вызове метода findByLastName(String lastName)
я всегда получаю пустую коллекцию - даже при передаче в моей базе данных фамилии, которая, как мне известно, существует:
public interface EmployeeRepository
extends CrudRepository<Employee, Long> {
@Query("select u from Employee u where u.lastName = ?1")
public Collection<Employee> findByLastName(String lastName);
}
Стоит также упомянуть, что столбец язапрос называется last_name
в столбце моей базы данных (с подчеркиванием).Я не уверен, имеет ли это какое-то значение.
Где я ошибся?