在Spring启动时使用Criteria的join和where子句

时间:2017-06-18 14:34:51

标签: spring-data-jpa criteria-api

我尝试使用命名查询来实现一些很容易实现的功能,但我想使用条件来实现这一点。 以下是我的两张桌子。

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

User:
userId,
name,
address

不,我想获取对应于用户(给定的用户ID)的通知(可设置为1)

一种方法是从User获取通知并迭代它们以查看哪些通知可见,但我不想这样做,因为这将不必要地从db中提取大量数据。

最好的方法是什么?

1 个答案:

答案 0 :(得分: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);
}
}

希望这会对你有所帮助。