2016年10月13日木曜日

springboot+domaページング

SQL:
ファイル名:
{プロジェクトパス}\src\main\resources\META-INF\com\example\MenuDao\selectAll.sql

ファイル内容
SELECT
menu_id
,menu_namer
FROM menus
ORDER BY menu_id



Entity:
ファイル名:
{プロジェクトパス}\src\main\ava\com\example\Menus.java
@Entity
@Table(name = "menus")
public class Menus {


@Id
@Column(name = "menu_id")
private Integer menuId;

@Column(name = "menu_name")
private String menuName;

//getter,setter略

}

Dao:
ファイル名:
{プロジェクトパス}\src\main\java\com\example\MenuDao.java
@Dao
@ConfigAutowireable
public interface MenuDao {

@Select
List<TElecRyokinLowMenuM> selectAll(SelectOptions options);

}

Controller:
ファイル名:
{プロジェクトパス}\src\main\java\com\example\MenuController.java

@RestController
public class MenuController {

final MenuDao menuDao;

@Autowired
public MenuController(MenuDao menuDao){
this.menuDao = menuDao;
}

@RequestMapping(value="/menu",method=RequestMethod.GET)
List<Menus> list(@PageableDefault Pageable pageable){
List<Menus> menus = menuDao.selectAll(Pageables.toSelectOptions(pageable));
return menus;
}

}

使用方法:
http://localhost:8080/menu?page=5&size=30

ログをみると、下記のようなSQLを出力する:
select 
menu_id
,menu_name
from menus 

order by menu_id limit 30 offset 150

参照リンク:
http://ankushs92.github.io/tutorial/2016/05/03/pagination-with-spring-boot.html

0 件のコメント: