2014-02-12 21 views
0

我無法工作了,爲什麼我的foundUser對象回來爲空時,正確的參數被傳遞到findByUserName方法玩!框架,創建的對象甚至傳遞正確的值到方法

這裏就是方法後爲空稱爲

public static ObjectNode getAllConnections(String userName){ 

    List<Connections> connectionsUsernames = find.where().eq("username", userName).findList(); 

    Iterator<Connections> connectionsIterator = connectionsUsernames.iterator(); 

    ObjectNode response = Json.newObject(); 
    ObjectNode responseItem = Json.newObject(); 

    while (connectionsIterator.hasNext()){ 
     Connections connection = connectionsIterator.next(); 

     User foundUser = User.findByUserName(connection.connectionUserName); 
     responseItem.put("jobtitle", foundUser.jobTitle); 

     responseItem.put("connectionid", connection.connectionId.toString()); 
     responseItem.put("connectionusername", connection.connectionUserName); 
     responseItem.put("connectiondate", connection.connectionDate); 

     response.put(connection.connectionUserName, responseItem); 

    } 
    return response; 
} 

據就行用戶foundUser = User.findByUserName(connection.connectionUserName)未;

我想要做的是從用戶的數據庫中獲取userName的詳細信息,該用戶的用戶名存儲在connection.ConnectionUserName變量中,但foundUser變量爲null,即使在調試中可以看到正確的字符串正在傳遞該方法

這裏是User類的findByUserName方法

public static User findByUserName(String userName) { 
    return find.where().eq("username", userName).findUnique(); 
} 

任何幫助,將不勝感激,我想我只需要一組不同的眼睛看在這一點,並看到一個明顯的錯誤,我錯過了!

在此先感謝!

+0

您是否驗證過'connection.connectionUserName'已填充? – StormeHawke

+0

另外,你甚至使用'foundUser'作爲什麼?我沒有看到它聲明後的任何引用 – StormeHawke

+0

@StormeHawke'connection.connectionUserName'填充了一個用戶名,'foundUser'被引用在下面的行中,'foundUser.jobTitle'我試圖獲得值for'jobTitle' – adamtrousdale

回答

0

在這種情況下,我認爲你是唯一能幫助你的人。

  • 首先adding lines to conf

    db.default.logStatements=true 
    logger.com.jolbox=DEBUG 
    

    使語句記錄到控制檯上,所以你可以只複製無效的SQL語句,然後嘗試在你最喜歡的DB GUI

  • 使用調試器執行它在這個地方打破並檢查解決的值,也許問題不在users'取景器?

  • 順便說一句,你可以迭代for循環它會更簡單的代碼。

  • 最後,你正在尋找由username連接,但想要得到它爲connectionUserName爲什麼?如果你真的有兩個單獨的領域,確保它們總是具有相同的值,如果你想搞砸這樣的事情。使用你的數據庫gui並直接在數據庫中檢查,如果是的話。

+0

感謝您告訴我有關SQL日誌記錄的信息,這在將來會很有用。原來問題是一個厭倦的程序員,我傳遞給findByUserName方法的用戶名以.com而不是.co.uk結尾,就像數據庫中的用戶名一樣。我的愚蠢!你的建議幫助我到達那裏,所以謝謝你花時間回答! – adamtrousdale

相關問題