Skip to content

Commit 61aa003

Browse files
committed
Remove lombok @Data from MongoDB entity
1 parent 3099ad0 commit 61aa003

1 file changed

Lines changed: 18 additions & 25 deletions

File tree

  • mflix/server/java-spring/src/main/java/com/mongodb/samplemflix/model

mflix/server/java-spring/src/main/java/com/mongodb/samplemflix/model/Movie.java

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@
33
import com.fasterxml.jackson.annotation.JsonProperty;
44
import java.util.Date;
55
import java.util.List;
6-
import lombok.AllArgsConstructor;
7-
import lombok.Builder;
8-
import lombok.Data;
9-
import lombok.NoArgsConstructor;
6+
import lombok.*;
107
import org.bson.types.ObjectId;
8+
import org.springframework.data.annotation.Id;
119
import org.springframework.data.mongodb.core.mapping.Document;
1210

1311
/**
@@ -18,15 +16,13 @@
1816
* for awards, IMDB ratings, and Tomatoes ratings.
1917
*
2018
* <p>Note: We use Lombok annotations to reduce boilerplate code:
21-
* - @Data: Generates getters, setters, toString, equals, and hashCode
19+
* - @Getter @Setter @EqualsAndHashCode: Generates getters, setters, equals, and hashCode
2220
* - @Builder: Provides a fluent builder pattern for object construction
23-
* - @NoArgsConstructor: Generates a no-argument constructor (required by MongoDB driver)
24-
* - @AllArgsConstructor: Generates a constructor with all fields
2521
*/
26-
@Data
22+
@Getter
23+
@Setter
24+
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
2725
@Builder
28-
@NoArgsConstructor
29-
@AllArgsConstructor
3026
@Document(collection = "movies")
3127
public class Movie {
3228

@@ -77,6 +73,8 @@ private Fields() {
7773
* Can be null for new documents (MongoDB will generate it).
7874
*/
7975
@JsonProperty("_id")
76+
@Id
77+
@EqualsAndHashCode.Include
8078
private ObjectId id;
8179

8280
/**
@@ -177,10 +175,9 @@ private Fields() {
177175
/**
178176
* Nested class representing awards information.
179177
*/
180-
@Data
178+
@Getter
179+
@Setter
181180
@Builder
182-
@NoArgsConstructor
183-
@AllArgsConstructor
184181
public static class Awards {
185182
/**
186183
* Number of awards won.
@@ -201,10 +198,9 @@ public static class Awards {
201198
/**
202199
* Nested class representing IMDB rating information.
203200
*/
204-
@Data
201+
@Getter
202+
@Setter
205203
@Builder
206-
@NoArgsConstructor
207-
@AllArgsConstructor
208204
public static class Imdb {
209205
/**
210206
* IMDB rating (0.0 to 10.0).
@@ -225,10 +221,9 @@ public static class Imdb {
225221
/**
226222
* Nested class representing Rotten Tomatoes rating information.
227223
*/
228-
@Data
224+
@Getter
225+
@Setter
229226
@Builder
230-
@NoArgsConstructor
231-
@AllArgsConstructor
232227
public static class Tomatoes {
233228
/**
234229
* Viewer ratings information.
@@ -263,10 +258,9 @@ public static class Tomatoes {
263258
/**
264259
* Nested class for viewer ratings.
265260
*/
266-
@Data
261+
@Getter
262+
@Setter
267263
@Builder
268-
@NoArgsConstructor
269-
@AllArgsConstructor
270264
public static class Viewer {
271265
/**
272266
* Viewer rating (0.0 to 5.0).
@@ -287,10 +281,9 @@ public static class Viewer {
287281
/**
288282
* Nested class for critic ratings.
289283
*/
290-
@Data
284+
@Getter
285+
@Setter
291286
@Builder
292-
@NoArgsConstructor
293-
@AllArgsConstructor
294287
public static class Critic {
295288
/**
296289
* Critic rating (0.0 to 5.0).

0 commit comments

Comments
 (0)