iT邦幫忙

0

MongoDB查詢問題

建立欄位是大駝峰命名的,使用findByUserId/findByuserid/findByuser_id死活都查不出來,一直報錯 Did you mean: UserId,userId?
網頁上搜尋說使用@Document(對應表名)可以解決問題,嘗試在DAO或MODEL都加入也不行。
請問想查詢大駝峰命名法欄位的方法?

Joe iT邦新手 5 級 ‧ 2021-03-17 13:05:01 檢舉
要不要放個圖啊
貼個code吧

1 個回答

0
matthung
iT邦新手 5 級 ‧ 2021-03-23 14:01:15
最佳解答

是用Spring Data?使用@Field mapping欄位名稱

User entity (model)

@Document(collection="user")
public class User {

    @Field("UserId")
    private String userId;

    @Field("UserEmail")
    private String userEmail;
    
    // getters and setters..
  
}

DAO

public interface UserDao extends MongoRepository<User, String> {
    
    public Optional<User> findByUserId(String userId);
    public Optional<User> findByUserEmail(String userEmail);          

}

Spring Boot 2 + Spring Data MongoDB + MongoDB 簡單範例

我要發表回答

立即登入回答