我正在使用Spring Data REST和Angular構建一個連接到mySQL-DB的網站。具有特定結果的Spring Data Rest請求
有了這樣的http請求,我會得到我的數據:
$scope.getAllHolidays = function(){
var URL = String('http://localhost:8080/holidays?projection=noHolidayweek');
$http({
url: URL,
method: 'GET',
contentType: 'application/json'
})
.then(useData);
};
現在,它會帶給我所有的假期與他們的信息(包括外鍵連接的數據)。 我的結果是這樣的:
"_embedded" : {
"holidays" : [ {
"strTitle" : "Summer 2016",
"byteHolidayReason" : 0,
"bolEnabled" : false,
"holidayweek" : [ {
"shortYear" : 2016,
"byteWeek" : 29,
"occupancy" : [ { <-- joined table
"intNumber" : 0,
}, {
"intNumber" : 3,
}, {
"intNumber" : 2,
{ AND SO ON (LARGE ARRAY) }]
}]
但我的問題是,我只希望得到具體的信息,而不從加盟的數據,因爲它包括很多數據,是無用的,在這一點上。
UPDATE: 我說我的模型和控制器,並創建了一個投影到我的倉庫就像@Valerio Vaudi建議我,但它仍然沒有工作。
我的模型(main.holiday.model):
@Entity
public class Holiday {
public Holiday(){
}
@Id
@Column(name="holiday_id")
private Long LongHoliday_id = main.modules.calcID.calculateID();
@Column(name="Title")
private String strTitle;
@Column(name="HolidayReason")
private byte byteHolidayReason;
//0=Sommer
//1=Winter
@Column(name="Enabled")
private boolean bolEnabled;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "holiday_id")
private Set<Holidayweek> holidayweeks = new HashSet<Holidayweek>();
//setter & getter
我的倉庫(main.holiday.controller):
public interface HolidayRepository extends PagingAndSortingRepository<Holiday, Long>,
QueryDslPredicateExecutor<Holiday> {
}
@Projection(name = "noHolidayweek", types = {Holiday.class})
interface NoHolidayweek{
Long getLongHoliday_id();
String getStrTitle();
Byte getByteHolidayReason();
Boolean getBolEnabled();
}
請幫幫我!
在URL中傳遞查詢參數並在後端過濾結果 – Ved
好的,我該怎麼做? – Phil
您的意思是提出一個正常的請求,然後過濾不相關的數據? – Phil