Commit 5b2a3121 by Patryk Czarnik

Adnotacje Validation

parent 3308d7e0
...@@ -58,9 +58,12 @@ public class ProductController { ...@@ -58,9 +58,12 @@ public class ProductController {
@PostMapping({"/{id}/edit", "/new"}) @PostMapping({"/{id}/edit", "/new"})
public String saveProduct(Product product) { public String saveProduct(Product product) {
// W tej wersji dane z wypełnionego formularza odbieramy w postaci jednego obiektu Product. // W tej wersji dane z wypełnionego formularza odbieramy w postaci jednego obiektu Product.
// Na taki obiekt mówi się czasami "form backing bean".
// Spring sam wpisze dane do pól o takich samych nazwach. // Spring sam wpisze dane do pól o takich samych nazwach.
// Taki parametr od razu staje się częścią modelu (to jest tzw. ModelAttribute) // Taki parametr od razu staje się częścią modelu (to jest tzw. ModelAttribute)
// Gdyby obiekt nie spełniał warunków walidacji, to zostanie odrzucony przez metodę save. Będzie wyjątek.
System.out.println("id przed zapisem: " + product.getProductId()); System.out.println("id przed zapisem: " + product.getProductId());
productRepository.save(product); productRepository.save(product);
System.out.println("id po zapisie: " + product.getProductId()); System.out.println("id po zapisie: " + product.getProductId());
......
...@@ -2,6 +2,9 @@ package sklep.model; ...@@ -2,6 +2,9 @@ package sklep.model;
import java.io.Serializable; import java.io.Serializable;
import jakarta.persistence.*; import jakarta.persistence.*;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.Pattern;
import java.util.List; import java.util.List;
...@@ -17,6 +20,7 @@ public class Customer implements Serializable { ...@@ -17,6 +20,7 @@ public class Customer implements Serializable {
@Id @Id
@Column(name="customer_email", updatable=false) @Column(name="customer_email", updatable=false)
@Email
private String customerEmail; private String customerEmail;
private String address; private String address;
...@@ -30,6 +34,7 @@ public class Customer implements Serializable { ...@@ -30,6 +34,7 @@ public class Customer implements Serializable {
private String phoneNumber; private String phoneNumber;
@Column(name="postal_code") @Column(name="postal_code")
@Pattern(regexp="\\d{2}-\\d{3}")
private String postalCode; private String postalCode;
//bi-directional many-to-one association to Order //bi-directional many-to-one association to Order
......
...@@ -2,6 +2,10 @@ package sklep.model; ...@@ -2,6 +2,10 @@ package sklep.model;
import java.io.Serializable; import java.io.Serializable;
import jakarta.persistence.*; import jakarta.persistence.*;
import jakarta.validation.constraints.DecimalMax;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.Min;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -19,11 +23,15 @@ public class OrderProduct implements Serializable { ...@@ -19,11 +23,15 @@ public class OrderProduct implements Serializable {
private OrderProductPK id; private OrderProductPK id;
@Column(name="actual_price") @Column(name="actual_price")
@DecimalMin("0.01")
private BigDecimal actualPrice; private BigDecimal actualPrice;
@Column(name="actual_vat") @Column(name="actual_vat")
@DecimalMin("0.00")
@DecimalMax("0.99")
private BigDecimal actualVat; private BigDecimal actualVat;
@Min(1)
private Integer quantity; private Integer quantity;
//bi-directional many-to-one association to Order //bi-directional many-to-one association to Order
......
...@@ -2,6 +2,8 @@ package sklep.model; ...@@ -2,6 +2,8 @@ package sklep.model;
import java.io.Serializable; import java.io.Serializable;
import jakarta.persistence.*; import jakarta.persistence.*;
import jakarta.validation.constraints.*;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -22,11 +24,16 @@ public class Product implements Serializable { ...@@ -22,11 +24,16 @@ public class Product implements Serializable {
private String description; private String description;
@NotNull
@DecimalMin("0.01")
private BigDecimal price; private BigDecimal price;
@Column(name="product_name") @Column(name="product_name")
@NotBlank
private String productName; private String productName;
@DecimalMin("0.00")
@DecimalMax("0.99")
private BigDecimal vat; private BigDecimal vat;
public Product() { public Product() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment