基於Spring Data Document documentation,我提供了一個存儲庫方法的自定義實現。自定義方法的名稱是指不在域對象存在的屬性:Spring Data MongoDB試圖爲自定義存儲庫方法生成查詢
@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);
}
然而,我所選擇的方法名(findByNonExistentPropertyName
)或許是因爲,春數據嘗試解析方法名,並從中創建一個查詢。當它在User
中找不到nonExistentProperty
時,會引發異常。
可能的解決方法:
- 因爲我已在我如何提供自定義的方法的實現的錯誤呢?
- 有沒有辦法指示Spring不試圖根據此方法的名稱生成查詢?
- 我是否必須避免使用Spring Data可識別的任何前綴?
- 以上都不是。
謝謝!
我不確定這是否是實際問題,但不應該UserRepositoryCustomImpl實現UserRepositoryCustom? –
是的,你是對的,它確實如此,當我寫這個問題時,我錯過了。謝謝! –