1
1
package com .balinski .api_project .database .dao ;
2
2
3
- import com .balinski .api_project .database .model .DatabaseModel ;
3
+ import com .balinski .api_project .database .DaoManager ;
4
+ import com .balinski .api_project .database .model .Film ;
4
5
5
6
import java .math .BigDecimal ;
6
7
import java .time .LocalDateTime ;
7
8
import java .time .format .DateTimeFormatter ;
8
9
import java .util .List ;
9
10
import java .util .Map ;
10
11
11
- public class FilmDao extends Dao {
12
+ public class FilmDao extends Dao < Film > {
12
13
static final DateTimeFormatter toDate = DateTimeFormatter .ofPattern ("yyyy-MM-dd" );
13
14
14
15
public FilmDao (DaoManager manager , boolean transaction ) {
15
- super (manager , ModelType .FILM , transaction );
16
+ super (manager , DaoType .FILM , transaction );
16
17
}
17
18
18
- public List <? super DatabaseModel > getByTitle (String title ) {
19
+ public List <Film > getByTitle (String title ) {
19
20
List <Map <String , Object >> result = manager .queryGetData (
20
21
String .format ("SELECT * FROM FILM F WHERE lower(F.TITLE) = '%s';" , title .toLowerCase ())
21
22
);
22
23
23
24
return toListOfObjects (result );
24
25
}
25
26
26
- public List <? super DatabaseModel > getReleasedBetween (LocalDateTime start , LocalDateTime end ) {
27
+ public List <Film > getReleasedBetween (LocalDateTime start , LocalDateTime end ) {
27
28
List <Map <String , Object >> result = manager .queryGetData (
28
29
String .format ("SELECT * FROM FILM F WHERE F.RELEASE_YEAR BETWEEN TIMESTAMP '%s' AND TIMESTAMP '%s';" ,
29
30
start .format (toDate ), end .format (toDate ))
@@ -32,23 +33,23 @@ public List<? super DatabaseModel> getReleasedBetween(LocalDateTime start, Local
32
33
return toListOfObjects (result );
33
34
}
34
35
35
- public List <? super DatabaseModel > getReleasedBefore (LocalDateTime date ) {
36
+ public List <Film > getReleasedBefore (LocalDateTime date ) {
36
37
List <Map <String , Object >> result = manager .queryGetData (
37
38
String .format ("SELECT * FROM FILM F WHERE F.RELEASE_YEAR < TIMESTAMP '%s';" , date .format (toDate ))
38
39
);
39
40
40
41
return toListOfObjects (result );
41
42
}
42
43
43
- public List <? super DatabaseModel > getReleasedAfter (LocalDateTime date ) {
44
+ public List <Film > getReleasedAfter (LocalDateTime date ) {
44
45
List <Map <String , Object >> result = manager .queryGetData (
45
46
String .format ("SELECT * FROM FILM F WHERE F.RELEASE_YEAR > TIMESTAMP '%s';" , date .format (toDate ))
46
47
);
47
48
48
49
return toListOfObjects (result );
49
50
}
50
51
51
- public List <? super DatabaseModel > getAvailableInLanguage (String language ) {
52
+ public List <Film > getAvailableInLanguage (String language ) {
52
53
List <Map <String , Object >> result = manager .queryGetData (
53
54
String .format ("SELECT F.* FROM (FILM F JOIN LANGUAGE L ON F.LANGUAGE_ID = L.LANGUAGE_ID" +
54
55
") WHERE lower(NAME) = '%s';" , language .toLowerCase ())
@@ -57,7 +58,7 @@ public List<? super DatabaseModel> getAvailableInLanguage(String language) {
57
58
return toListOfObjects (result );
58
59
}
59
60
60
- public List <? super DatabaseModel > getWithRentalRateBetween (BigDecimal min , BigDecimal max ) {
61
+ public List <Film > getWithRentalRateBetween (BigDecimal min , BigDecimal max ) {
61
62
List <Map <String , Object >> result = manager .queryGetData (
62
63
String .format ("SELECT * FROM FILM F WHERE F.RENTAL_RATE BETWEEN %s AND %s;" ,
63
64
min .toPlainString (), max .toPlainString ())
@@ -66,63 +67,63 @@ public List<? super DatabaseModel> getWithRentalRateBetween(BigDecimal min, BigD
66
67
return toListOfObjects (result );
67
68
}
68
69
69
- public List <? super DatabaseModel > getWithLowerRentalRateThan (BigDecimal rate ) {
70
+ public List <Film > getWithLowerRentalRateThan (BigDecimal rate ) {
70
71
List <Map <String , Object >> result = manager .queryGetData (
71
72
String .format ("SELECT * FROM FILM F WHERE F.RENTAL_RATE < %s;" , rate .toPlainString ())
72
73
);
73
74
74
75
return toListOfObjects (result );
75
76
}
76
77
77
- public List <? super DatabaseModel > getWithGreaterRentalRateThan (BigDecimal rate ) {
78
+ public List <Film > getWithGreaterRentalRateThan (BigDecimal rate ) {
78
79
List <Map <String , Object >> result = manager .queryGetData (
79
80
String .format ("SELECT * FROM FILM F WHERE F.RENTAL_RATE > %s;" , rate .toPlainString ())
80
81
);
81
82
82
83
return toListOfObjects (result );
83
84
}
84
85
85
- public List <? super DatabaseModel > getWithRentalDurationBetween (int min , int max ) {
86
+ public List <Film > getWithRentalDurationBetween (int min , int max ) {
86
87
List <Map <String , Object >> result = manager .queryGetData (
87
88
String .format ("SELECT * FROM FILM F WHERE F.RENTAL_DURATION BETWEEN %d AND %d;" , min , max )
88
89
);
89
90
90
91
return toListOfObjects (result );
91
92
}
92
93
93
- public List <? super DatabaseModel > getWithShorterRentalDurationThan (int duration ) {
94
+ public List <Film > getWithShorterRentalDurationThan (int duration ) {
94
95
List <Map <String , Object >> result = manager .queryGetData (
95
96
String .format ("SELECT * FROM FILM F WHERE F.RENTAL_DURATION < %d;" , duration )
96
97
);
97
98
98
99
return toListOfObjects (result );
99
100
}
100
101
101
- public List <? super DatabaseModel > getWithGreaterRentalDurationThan (int duration ) {
102
+ public List <Film > getWithGreaterRentalDurationThan (int duration ) {
102
103
List <Map <String , Object >> result = manager .queryGetData (
103
104
String .format ("SELECT * FROM FILM F WHERE F.RENTAL_DURATION > %d;" , duration )
104
105
);
105
106
106
107
return toListOfObjects (result );
107
108
}
108
109
109
- public List <? super DatabaseModel > getWithLengthBetween (int min , int max ) {
110
+ public List <Film > getWithLengthBetween (int min , int max ) {
110
111
List <Map <String , Object >> result = manager .queryGetData (
111
112
String .format ("SELECT * FROM FILM F WHERE F.LENGTH BETWEEN %d AND %d;" , min , max )
112
113
);
113
114
114
115
return toListOfObjects (result );
115
116
}
116
117
117
- public List <? super DatabaseModel > getShorterThan (int minutes ) {
118
+ public List <Film > getShorterThan (int minutes ) {
118
119
List <Map <String , Object >> result = manager .queryGetData (
119
120
String .format ("SELECT * FROM FILM F WHERE F.LENGTH < %d;" , minutes )
120
121
);
121
122
122
123
return toListOfObjects (result );
123
124
}
124
125
125
- public List <? super DatabaseModel > getLongerThan (int minutes ) {
126
+ public List <Film > getLongerThan (int minutes ) {
126
127
List <Map <String , Object >> result = manager .queryGetData (
127
128
String .format ("SELECT * FROM FILM F WHERE F.LENGTH > %d;" , minutes )
128
129
);
0 commit comments