2017-06-18 40 views
0

我試圖實現使用命名查詢輕鬆實現的操作,但我想使用條件來執行此操作。 下面是我的兩個表格。在Spring引導中使用條件加入和where子句

Notification: 
id 
userId (foreign key to user) 
Notification 
Visible 

User: 
userId, 
name, 
address 

不,我想獲取對應於用戶(指定用戶ID),它是可見的(值設置爲1)

一種方式做到這一點來從用戶的通知,並重復他們看到通知哪個通知是可見的,但我不想這樣做,因爲這將不必要地從數據庫中提取大量數據。

什麼應該是最好的辦法呢?

回答

0

你可以使用Spring數據JPA輕鬆

來實現這一目標創造延長JPA庫的接口

@Repository 
@RepositoryRestResource 
public interface NotificationRepository extends JpaRepository<Notification,Long (datatype for primary key)> { 

List<Notification> findByUseridAndVisible(Long userid,int visible); 
} 

現在你可以創建服務類和直接使用此方法

class service(){ 
@Autowired 
NotificationRepository notificationrepository; 

public void method(){ 
Long userid=85; 
int visible=1; 
List<Notification> getnotificationlist= notificationrepository.findByUseridAndVisible(userid,visible); 
} 
} 

希望這會幫助你。

+0

我沒有userid在我的模型,而是我有用戶對象(多對一的關係)。如果我用用戶替換用戶名然後我得到異常「參數值[1]不符合預期的類型[java.lang.Boolean(N/A)]」 –