Dựa trên Spring Data Document documentation, tôi đã cung cấp triển khai tùy chỉnh phương thức lưu trữ. Tên phương pháp tùy chỉnh của đề cập đến một tài sản mà không tồn tại trong đối tượng miền:Dữ liệu mùa xuân MongoDB cố gắng tạo truy vấn cho các phương thức lưu trữ tùy chỉnh
@Document
public class User {
String username;
}
public interface UserRepositoryCustom {
public User findByNonExistentProperty(String arg);
}
public class UserRepositoryCustomImpl implements UserRepositoryCustom {
@Override
public User findByNonExistentProperty(String arg) {
return /*perform query*/;
}
}
public interface UserRepository
extends CrudRepository<?, ?>, UserRepositoryCustom {
public User findByUsername(String username);
}
Tuy nhiên, có lẽ vì tên phương pháp tôi đã chọn (findByNonExistentPropertyName
), Spring dữ liệu cố gắng phân tích tên phương pháp, và tạo truy vấn từ nó. Khi không thể tìm thấy nonExistentProperty
ở số User
, một ngoại lệ sẽ bị loại bỏ.
độ phân giải có thể:
- đã tôi đã thực hiện một sai lầm trong cách tôi cung cấp việc thực hiện các phương pháp tùy chỉnh?
- Có cách nào để hướng dẫn Spring không tìm cách tạo truy vấn dựa trên tên của phương thức này không?
- Tôi có phải tránh sử dụng bất kỳ tiền tố nào mà Dữ liệu mùa xuân nhận ra không?
- Không có mục nào ở trên.
Cảm ơn bạn!
Tôi không chắc đây có phải là sự cố thực sự hay không, nhưng không nên UserRepositoryCustomImpl triển khai UserRepositoryCustom? –
Có, bạn nói đúng, và nó có, tôi chỉ bỏ lỡ khi viết câu hỏi. Cảm ơn bạn! –