From 9d42a42d261e4c474754acac60c165cae2fb3500 Mon Sep 17 00:00:00 2001 From: asmhatre Date: Sat, 25 Jul 2026 08:19:45 +0000 Subject: [PATCH] Book: replace BigDecimal price with embedded Money value object --- src/main/java/com/ankurm/sdjpa4demo/domain/Book.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/ankurm/sdjpa4demo/domain/Book.java b/src/main/java/com/ankurm/sdjpa4demo/domain/Book.java index 1db085f..834d3c8 100644 --- a/src/main/java/com/ankurm/sdjpa4demo/domain/Book.java +++ b/src/main/java/com/ankurm/sdjpa4demo/domain/Book.java @@ -1,7 +1,6 @@ package com.ankurm.sdjpa4demo.domain; import jakarta.persistence.*; -import java.math.BigDecimal; @Entity public class Book { @@ -12,14 +11,16 @@ public class Book { private String title; - private BigDecimal price; + // Money's fields become columns on the book table: amount -> price_amount, currency -> price_currency. + @Embedded + private Money price; @ManyToOne(fetch = FetchType.LAZY) private Author author; protected Book() { } - public Book(String title, BigDecimal price, Author author) { + public Book(String title, Money price, Author author) { this.title = title; this.price = price; this.author = author; @@ -27,7 +28,7 @@ public class Book { public Long getId() { return id; } public String getTitle() { return title; } - public BigDecimal getPrice() { return price; } + public Money getPrice() { return price; } public Author getAuthor() { return author; } @Override