2017-03-26 66 views
0

我在春天啓動應用程序 在Spring數據休息的不同的行爲來,當我從對象倉庫類查詢,有自定義查詢通過匹配電子郵件ID檢索用戶對象,電子郵件ID是唯一的。我得到空值和對象存在。 我打電話給郵差的Rest URI。在這方面春天開機休息JPA查詢返回null對象上查詢通過電子郵件

+1

我們能幫忙嗎?你只需要開始調試:你傳遞給查詢的電子郵件是你認爲的那個(沒有尾隨或領先的空白空間等)?電子郵件是否真的存在於表格中?插入它的事務是否已被提交?您確定該應用程序使用您認爲正在使用的數據庫或模式嗎?它是否適用於其他現有電子郵件?在代碼中添加痕跡。使用你的調試器。我們在這裏沒有什麼可以做的。 –

+0

是的電子郵件存在數據庫中,我也檢查trim,當我嘗試獲取對象列表時,它向我顯示具有電子郵件ID的特定對象,但是當我嘗試作爲單個對象檢索時,我無法獲取它。 – Taimur

+0

我已經在sql查詢中使用類似條件進行檢查,並且它返回數據,可能這是前導空格的問題。 @Query(值=「從用戶選擇名字,姓氏ü在那裏u.email喜歡%:電子郵件%」),但與類似條件沒有滿足必要條件,因爲它會返回一個對象 – Taimur

回答

0

調試後,很多我終於在這個觀察到的電子郵件ID是不是能夠達到控制映射的方法和[email protected],它被解讀爲測試@ gmail的和時段,以及COM值被移出達,解決方法是更改​​URI映射並在參數末尾添加/,以便更新的URI現在爲
@RequestMapping(value =「/ user/email/{email} /」,產生= MediaType.APPLICATION_JSON_VALUE)

1

請需要 --UserRepository

@Repository 
@Transactional 
public interface UserRepository extends JpaRepository<User, Long> {  

    @Query(value ="select u from User u where u.email = :email") 
    User findByEmail(@Param("email") String email); 


} 

--UserServiceImpl

@Service("userService") 
@Transactional 
public class UserServiceImpl implements IUserService{ 

    @Autowired 
    private UserRepository userRepository; 


    @Override 
    public User findByEmail(String email) { 
     return userRepository.findByEmail(email); 
    } 
} 

--controller

@RestController 
@RequestMapping("/api") 
public class UserControllerRest { 

@Autowired(required = true) 
UserServiceImpl userService;  
@RequestMapping(value = "/user/email/{email}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) 
      public ResponseEntity<User> getUserByEmail(@PathVariable("email") String email) { 
       System.out.println("Fetching User with id " + email); 
       User user = userService.findByEmail(email); 
       if (user == null) { 
        System.out.println("User with email " + email + " not found"); 
        return new ResponseEntity<User>(HttpStatus.NOT_FOUND); 
       } 
       return new ResponseEntity<User>(user, HttpStatus.OK); 
      } 

} 

幫助,增加更多的細節。將項目添加到GitHub或其他東西。你的用戶模型是怎樣的?您注入服務實現而不是IUserService,也許這是問題。

+0

我有固定的服務注入,通過用IUserService替換服務實現 – Taimur