Tôi đang học cách sử dụng JHipster và không thể tìm ra cách sử dụng tạo truy vấn tùy chỉnh.Cách thêm truy vấn tùy chỉnh trong JHipster?
Trong dự án của tôi, tôi có Orders
bảng có các trường DeliveryDay
và Week
và chỉ muốn hiển thị các đơn đặt hàng cho ngày hiện tại trong tuần. DeliveryDay và Tuần là int
với các giá trị (1-7 và 0-2)
Vì vậy, trong OrdersRepository.java
tôi thêm truy vấn tùy chỉnh như thế này:
public interface OrdersRepository extends JpaRepository<Orders,Long> {
Page<Orders> findByDeliveryDayAndWeek(int weekday, int week, pageable);
trong OrdersResource.java
tôi thêm này một:
@RequestMapping(value = "/today",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public ResponseEntity<List<Orders>> getOrdersForToday(Pageable pageable)
throws URISyntaxException {
log.debug("REST request to get a page of Orderss");
Page<Orders> page = ordersRepository.findByDeliveryDayAndWeek(1, 0, pageable);
HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(page, "/api/today");
return new ResponseEntity<>(page.getContent(), headers, HttpStatus.OK);
}
Tôi cũng đã thêm today.html
(được sao chép orders.html
) và today.js
'use strict';
angular.module('fruitcrmApp')
.config(function ($stateProvider) {
$stateProvider
.state('today', {
parent: 'entity',
url: '/today',
data: {
authorities: ['ROLE_USER'],
pageTitle: 'fruitcrmApp.orders.home.title'
},
views: {
'[email protected]': {
templateUrl: 'scripts/app/custom/today.html',
controller: 'OrdersController'
}
},
resolve: {
translatePartialLoader: ['$translate', '$translatePartialLoader', function ($translate, $translatePartialLoader) {
$translatePartialLoader.addPart('orders');
$translatePartialLoader.addPart('global');
return $translate.refresh();
}]
}
})
});
và thêm today.js
trong index.html
My orders.controller.js
trông như thế này (tạo ra bởi JHipster)
'use strict';
angular.module('fruitcrmApp')
.controller('OrdersController', function ($scope, $state, Orders, OrdersSearch, ParseLinks) {
$scope.orderss = [];
$scope.predicate = 'id';
$scope.reverse = true;
$scope.page = 1;
$scope.loadAll = function() {
Orders.query({page: $scope.page - 1, size: 20, sort: [$scope.predicate + ',' + ($scope.reverse ? 'asc' : 'desc'), 'id']}, function(result, headers) {
$scope.links = ParseLinks.parse(headers('link'));
$scope.totalItems = headers('X-Total-Count');
$scope.orderss = result;
});
};
$scope.loadPage = function(page) {
$scope.page = page;
$scope.loadAll();
};
$scope.loadAll();
$scope.search = function() {
OrdersSearch.query({query: $scope.searchQuery}, function(result) {
$scope.orderss = result;
}, function(response) {
if(response.status === 404) {
$scope.loadAll();
}
});
};
$scope.refresh = function() {
$scope.loadAll();
$scope.clear();
};
$scope.clear = function() {
$scope.orders = {
details: null,
orderDate: null,
firstDelivery: null,
isActive: false,
id: null
};
};
});
Bây giờ tôi có thể truy cập http://localhost:3000/#/today
nhưng nó cho thấy tất cả các dữ liệu từ Orders
những gì tôi đã làm sai? Cách sử dụng phương pháp của riêng tôi từ OrdersRepository.java
?
Tôi đã cố gắng tìm kiếm các ví dụ nhưng không tìm thấy bất kỳ liên quan nào. Các bước cần thiết mà tôi đã bỏ lỡ là gì? Liên kết cho một số hướng dẫn, nơi nó được bảo hiểm sẽ là tuyệt vời nếu câu trả lời sẽ được lâu dài.