2017-10-27 3 views
0

Ich neues Mitglied von Java Spring, heute versuche ich mit CrudRepository von JPA abzufragen. Ich benutze Projections.Verwenden von Projektionen im Frühjahr Daten JPA Feld Fehler

Mein Repository:

@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); 
} 

Meine Schnittstelle:

public interface tbl_user_search { 
int getUserid(); 
String getUsername(); 
String getNickname(); 
String getAvatar(); 
String getState(); 
} 

Als ich teste ich diesen Fehler:

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\"])`

Wenn ich Typ getUserid(); in meiner Schnittstelle zu String diese ändern Fehler gemacht und habe einen neuen JSON.

{ 
    "state": "Hi", 
    "username": "https://forumhumgeduvn.000webhostapp.com/5skay/man.png", 
    "userid": "Hi Hi", 
    "avatar": "Pending", 
    "nickname": "3" 
} 

aber der JSON gibt keine Felder in der Reihenfolge zurück. Ich denke, das ist ein Problem, mein Fehler. Aber ich weiß es nicht reparieren. Sie können jede Lösung für mich teilen. Vielen Dank!

Antwort

1

Try LIKE wie folgt zu verwenden:

" where u.username LIKE %:username% and u.coupleid is null" 

oder:

" where u.username LIKE %?1% and u.coupleid is null" 

Lesen Sie diese Using advanced LIKE expressions

+0

ich es ein i einen neuen Bug versuchen haben: Unknown column 'u.userid' in 'Feldliste'. Ihr könnt mir helfen ? –

+0

@ phạmtuấn können Sie diese Abfrage versuchen, anstelle 'l.state AS Zustand SELECT, u.userid AS userid, u.username AS Benutzername, u.nickname AS Spitznamen, u.avatar AS avatar VON tbl_user u, tbl_request_love l WHERE l.senderid = u.userid AND u.username LIKE%? 1% AND u.coupled IS NULL' –

Verwandte Themen