私はJava Springの新しいメンバーです。今日、JPAのCrudRepository
でクエリを実行しようとしています。私はProjections
を使用しています。Springデータの投影を使用するJPAフィールドエラー
マイリポジトリ:
@Repository
public interface UserRepositoty extends CrudRepository<tbl_user, Integer> {
// search by username
@Query(value = "select (select l.state from tbl_request_love l where l.senderid = u.userid) as state, u.userid as userid,u.username as username,u.nickname as nickname,u.avatar as avatar"
+ " from tbl_user u"
+ " where u.username LIKE CONCAT('%',:username,'%') and u.coupleid is null" , nativeQuery = true)
List<tbl_user_search> findByUsernameEndWith(@Param("username") String username);
}
マイインタフェース:
Could not write JSON: Failed to convert from type [java.lang.String] to type [int] for value 'hihi';
nested exception is java.lang.NumberFormatException: For input string: \"hihi\";
nested exception is com.fasterxml.jackson.databind.JsonMappingException: Failed to convert from type [java.lang.String] to type [int] for value 'hihi';
nested exception is java.lang.NumberFormatException: For input string: \"hihi\"(through reference chain:
skay.model.api_searchuser[\"result\"]->java.util.ArrayList[0]->com.sun.proxy.$Proxy87[\"userid\"])`
私はString
これに私のインターフェイスタイプgetUserid();
を変更する場合:
public interface tbl_user_search {
int getUserid();
String getUsername();
String getNickname();
String getAvatar();
String getState();
}
私はこのエラーを取得するテストエラーが発生し、新しいjsonを持っています。
{
"state": "Hi",
"username": "https://forumhumgeduvn.000webhostapp.com/5skay/man.png",
"userid": "Hi Hi",
"avatar": "Pending",
"nickname": "3"
}
しかし、jsonはフィールドを順番に返しません。私はこれが私の間違いだと思う。しかし、私はそれを修正することを知らない。あなたは私のために任意の解決を共有することができます。ありがとうございました!
を読みます'フィールドリスト'に表示されます。あなたは私を助けることができますか? phạmtuấ[email protected] –
あなたは、代わりに '状態AS l.state、ユーザーID AS u.userid、ユーザ名AS u.username、ニックネームAS u.nickname、tbl_user U FROMアバター AS u.avatarを選択、このクエリを使用して試すことができますtbl_request_love l WHERE l.senderid = u.userid およびu.username LIKE%?1% AND u.coupleid IS NULL' –