2017-06-18 18 views
0

名前付きのクエリを使用して簡単に実行できるものを実現しようとしていますが、 以下は私の2つのテーブルです。Spring起動時にCriteriaを使用してjoinとwhere節を実行する

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

User: 
userId, 
name, 
address 

ありませんが、私は(1に設定した値)が表示されているユーザー(特定のユーザーID)ユーザーからの通知を取得し、参照するためにそれらを反復するためにそれを行うには

一つの方法に対応する通知を取得したいですどの通知が表示されていますが、それは不必要にdbから多くのデータを取得するので、私はそれをしたくありません。

どうすればよいでしょうか?

答えて

0

あなたは今、あなたは、サービスクラスを作成することができますし、直接

class service(){ 
@Autowired 
NotificationRepository notificationrepository; 

public void method(){ 
Long userid=85; 
int visible=1; 
List<Notification> getnotificationlist= notificationrepository.findByUseridAndVisible(userid,visible); 
} 
} 
としてこの方法を使用

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

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

としてJPAリポジトリを拡張インターフェイスを作成しやすさ

でこれをachiveする春のデータJPAを使用することができます

これがあなたを助けてくれることを願っています。

+0

私のモデルにはユーザーIDがありません。代わりに、ユーザーオブジェクト(多対1の関係)があります。私がuseridをuserに置き換えた場合、例外が発生する "パラメータ値[1]が期待される型[java.lang.Boolean(n/a)]と一致しませんでした –

関連する問題