From 4afcb55d8aa47362b5a2e15292869aef6b0bf048 Mon Sep 17 00:00:00 2001 From: Chantha Date: Sat, 16 May 2020 17:20:48 +0700 Subject: [PATCH] update repo --- .idea/uiDesigner.xml | 124 ++++++++++++++++++ .idea/workspace.xml | 102 ++++++++++---- .../jdbc/controller/CustomerController.kt | 5 +- .../jdbc/controller/OrderController.kt | 5 +- .../jdbc/controller/ProductController.kt | 19 +++ .../com/chantha/jdbc/jpa/model/Customer.java | 5 +- .../com/chantha/jdbc/jpa/model/Order.java | 4 +- .../chantha/jdbc/jpa/model/OrderDetail.java | 7 +- .../com/chantha/jdbc/jpa/model/Product.java | 10 +- .../jdbc/jpa/model/view/OrderDetailView.java | 31 +++++ .../model/view/ProductWithOrderDetail.java | 35 +++++ .../chantha/jdbc/jpa/repo/CustomerRepo.java | 15 ++- .../com/chantha/jdbc/jpa/repo/OrderRepo.java | 2 + .../com/chantha/jdbc/jpa/repo/ProductRepo.kt | 13 ++ .../jpa/service/order/OrderServiceImpl.java | 1 + .../jpa/service/product/ProductService.kt | 9 ++ .../jpa/service/product/ProductServiceImpl.kt | 34 +++++ .../com/chantha/jdbc/jpa/view/Entity.kt | 18 +++ .../com/chantha/jdbc/jpa/view/Views.java | 78 ----------- .../com/chantha/jdbc/jpa/view/ViewsInvoice.kt | 24 ++++ .../chantha/jdbc/utils/constants/Constants.kt | 2 + target/classes/META-INF/jdbc.kotlin_module | Bin 55 -> 94 bytes .../jdbc/controller/CustomerController.class | Bin 1809 -> 1809 bytes .../jdbc/controller/OrderController.class | Bin 1766 -> 1110 bytes .../jdbc/controller/ProductController.class | Bin 0 -> 1639 bytes .../jdbc/jpa/model/Customer$GENDER.class | Bin 1263 -> 1263 bytes .../com/chantha/jdbc/jpa/model/Customer.class | Bin 2706 -> 3107 bytes .../com/chantha/jdbc/jpa/model/Order.class | Bin 3374 -> 3322 bytes .../chantha/jdbc/jpa/model/OrderDetail.class | Bin 2627 -> 2566 bytes .../com/chantha/jdbc/jpa/model/Product.class | Bin 2448 -> 2481 bytes .../jdbc/jpa/model/view/OrderDetailView.class | Bin 0 -> 1055 bytes .../model/view/ProductWithOrderDetail.class | Bin 0 -> 1484 bytes .../chantha/jdbc/jpa/repo/CustomerRepo.class | Bin 652 -> 773 bytes .../chantha/jdbc/jpa/repo/ProductRepo.class | Bin 0 -> 1163 bytes .../jpa/service/order/OrderServiceImpl.class | Bin 3242 -> 3242 bytes .../jpa/service/product/ProductService.class | Bin 0 -> 776 bytes .../service/product/ProductServiceImpl.class | Bin 0 -> 4671 bytes .../com/chantha/jdbc/jpa/view/EntityKt.class | Bin 0 -> 1636 bytes .../chantha/jdbc/jpa/view/Views$Public.class | Bin 2259 -> 0 bytes .../com/chantha/jdbc/jpa/view/Views.class | Bin 376 -> 0 bytes .../chantha/jdbc/jpa/view/ViewsInvoice.class | Bin 0 -> 4239 bytes 41 files changed, 418 insertions(+), 125 deletions(-) create mode 100644 .idea/uiDesigner.xml create mode 100644 src/main/kotlin/com/chantha/jdbc/controller/ProductController.kt create mode 100644 src/main/kotlin/com/chantha/jdbc/jpa/model/view/OrderDetailView.java create mode 100644 src/main/kotlin/com/chantha/jdbc/jpa/model/view/ProductWithOrderDetail.java create mode 100644 src/main/kotlin/com/chantha/jdbc/jpa/repo/ProductRepo.kt create mode 100644 src/main/kotlin/com/chantha/jdbc/jpa/service/product/ProductService.kt create mode 100644 src/main/kotlin/com/chantha/jdbc/jpa/service/product/ProductServiceImpl.kt create mode 100644 src/main/kotlin/com/chantha/jdbc/jpa/view/Entity.kt delete mode 100644 src/main/kotlin/com/chantha/jdbc/jpa/view/Views.java create mode 100644 src/main/kotlin/com/chantha/jdbc/jpa/view/ViewsInvoice.kt create mode 100644 src/main/kotlin/com/chantha/jdbc/utils/constants/Constants.kt create mode 100644 target/classes/com/chantha/jdbc/controller/ProductController.class create mode 100644 target/classes/com/chantha/jdbc/jpa/model/view/OrderDetailView.class create mode 100644 target/classes/com/chantha/jdbc/jpa/model/view/ProductWithOrderDetail.class create mode 100644 target/classes/com/chantha/jdbc/jpa/repo/ProductRepo.class create mode 100644 target/classes/com/chantha/jdbc/jpa/service/product/ProductService.class create mode 100644 target/classes/com/chantha/jdbc/jpa/service/product/ProductServiceImpl.class create mode 100644 target/classes/com/chantha/jdbc/jpa/view/EntityKt.class delete mode 100644 target/classes/com/chantha/jdbc/jpa/view/Views$Public.class delete mode 100644 target/classes/com/chantha/jdbc/jpa/view/Views.class create mode 100644 target/classes/com/chantha/jdbc/jpa/view/ViewsInvoice.class diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index eac19f4..f2a6d9d 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,7 +1,34 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -21,7 +50,9 @@ - + + + + @@ -64,7 +97,12 @@ 1589523805860 - + + + + + + @@ -76,53 +114,65 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + - + - + \ No newline at end of file diff --git a/src/main/kotlin/com/chantha/jdbc/controller/CustomerController.kt b/src/main/kotlin/com/chantha/jdbc/controller/CustomerController.kt index 26bc24b..db576c3 100644 --- a/src/main/kotlin/com/chantha/jdbc/controller/CustomerController.kt +++ b/src/main/kotlin/com/chantha/jdbc/controller/CustomerController.kt @@ -1,9 +1,12 @@ package com.chantha.jdbc.controller import com.chantha.jdbc.jpa.model.Customer +import com.chantha.jdbc.jpa.model.Order import com.chantha.jdbc.jpa.service.customer.CustomerService -import org.apache.catalina.User +import com.chantha.jdbc.jpa.view.ViewsInvoice +import org.apache.tomcat.util.json.JSONParser import org.springframework.beans.factory.annotation.Autowired +import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.RestController diff --git a/src/main/kotlin/com/chantha/jdbc/controller/OrderController.kt b/src/main/kotlin/com/chantha/jdbc/controller/OrderController.kt index b0376d9..ea6aca0 100644 --- a/src/main/kotlin/com/chantha/jdbc/controller/OrderController.kt +++ b/src/main/kotlin/com/chantha/jdbc/controller/OrderController.kt @@ -9,8 +9,5 @@ import org.springframework.web.bind.annotation.RestController @RestController class OrderController @Autowired constructor(private val orderService: OrderService) { - @GetMapping("/") - fun findAllOrder():List{ - return orderService.findAll().toList() - } + } \ No newline at end of file diff --git a/src/main/kotlin/com/chantha/jdbc/controller/ProductController.kt b/src/main/kotlin/com/chantha/jdbc/controller/ProductController.kt new file mode 100644 index 0000000..172b0e0 --- /dev/null +++ b/src/main/kotlin/com/chantha/jdbc/controller/ProductController.kt @@ -0,0 +1,19 @@ +package com.chantha.jdbc.controller + +import com.chantha.jdbc.jpa.model.Product +import com.chantha.jdbc.jpa.model.view.ProductWithOrderDetail +import com.chantha.jdbc.jpa.repo.ProductRepo +import com.chantha.jdbc.jpa.service.product.ProductService +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.RestController + +@RestController +public class ProductController @Autowired constructor(private val productService: ProductService) { + + @GetMapping("/product") + fun product():List{ + return productService.fetchAllProducts() + } + +} \ No newline at end of file diff --git a/src/main/kotlin/com/chantha/jdbc/jpa/model/Customer.java b/src/main/kotlin/com/chantha/jdbc/jpa/model/Customer.java index c5c57c4..68f3841 100644 --- a/src/main/kotlin/com/chantha/jdbc/jpa/model/Customer.java +++ b/src/main/kotlin/com/chantha/jdbc/jpa/model/Customer.java @@ -1,9 +1,6 @@ package com.chantha.jdbc.jpa.model; -import com.chantha.jdbc.jpa.view.Views; -import com.chantha.jdbc.utils.CustomGenderSerializer; import com.fasterxml.jackson.annotation.*; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; import javax.persistence.*; import java.io.Serializable; @@ -11,6 +8,8 @@ import java.util.List; @Entity @Table(name = "tbCustomer") +@JsonPropertyOrder({"id","cusName","gender","orders"}) +@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id") public class Customer implements Serializable { @Id diff --git a/src/main/kotlin/com/chantha/jdbc/jpa/model/Order.java b/src/main/kotlin/com/chantha/jdbc/jpa/model/Order.java index 36fc4f6..9a1ca4a 100644 --- a/src/main/kotlin/com/chantha/jdbc/jpa/model/Order.java +++ b/src/main/kotlin/com/chantha/jdbc/jpa/model/Order.java @@ -31,7 +31,7 @@ public class Order implements Serializable { @JoinColumn(name = "cusId",nullable = false,referencedColumnName = "id") private Customer customer; - @JsonManagedReference + @OneToMany(mappedBy = "order") private List orderDetails; @@ -68,7 +68,7 @@ public class Order implements Serializable { this.customer = customer; } - @JsonIgnore + @JsonManagedReference public List getOrderDetails() { return orderDetails; } diff --git a/src/main/kotlin/com/chantha/jdbc/jpa/model/OrderDetail.java b/src/main/kotlin/com/chantha/jdbc/jpa/model/OrderDetail.java index a694062..5dda7d3 100644 --- a/src/main/kotlin/com/chantha/jdbc/jpa/model/OrderDetail.java +++ b/src/main/kotlin/com/chantha/jdbc/jpa/model/OrderDetail.java @@ -3,11 +3,13 @@ package com.chantha.jdbc.jpa.model; import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonManagedReference; +import com.fasterxml.jackson.annotation.JsonProperty; import javax.persistence.*; +import java.io.Serializable; @Entity -public class OrderDetail { +public class OrderDetail implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long orderDetailId; @@ -16,7 +18,8 @@ public class OrderDetail { private double price; - @JsonManagedReference + + @JsonBackReference @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "orderId",nullable = false) private Order order; diff --git a/src/main/kotlin/com/chantha/jdbc/jpa/model/Product.java b/src/main/kotlin/com/chantha/jdbc/jpa/model/Product.java index 95f4cfc..aca6da2 100644 --- a/src/main/kotlin/com/chantha/jdbc/jpa/model/Product.java +++ b/src/main/kotlin/com/chantha/jdbc/jpa/model/Product.java @@ -1,13 +1,14 @@ package com.chantha.jdbc.jpa.model; -import com.fasterxml.jackson.annotation.JsonBackReference; -import com.fasterxml.jackson.annotation.JsonManagedReference; +import com.fasterxml.jackson.annotation.*; import javax.persistence.*; +import java.io.Serializable; import java.util.List; @Entity -public class Product { +//@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "productId") +public class Product implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -59,7 +60,8 @@ public class Product { this.orderDetails=orderDetails; } - @JsonManagedReference +// @JsonManagedReference + @JsonProperty("orderDetails") @OneToMany(fetch = FetchType.EAGER,mappedBy = "product") private List orderDetails; } diff --git a/src/main/kotlin/com/chantha/jdbc/jpa/model/view/OrderDetailView.java b/src/main/kotlin/com/chantha/jdbc/jpa/model/view/OrderDetailView.java new file mode 100644 index 0000000..9475e0d --- /dev/null +++ b/src/main/kotlin/com/chantha/jdbc/jpa/model/view/OrderDetailView.java @@ -0,0 +1,31 @@ +package com.chantha.jdbc.jpa.model.view; + +public class OrderDetailView { + public Long getOrderDetailId() { + return orderDetailId; + } + + public void setOrderDetailId(Long orderDetailId) { + this.orderDetailId = orderDetailId; + } + + public int getQty() { + return qty; + } + + public void setQty(int qty) { + this.qty = qty; + } + + public double getPrice() { + return price; + } + + public void setPrice(double price) { + this.price = price; + } + + private Long orderDetailId; + private int qty; + private double price; +} diff --git a/src/main/kotlin/com/chantha/jdbc/jpa/model/view/ProductWithOrderDetail.java b/src/main/kotlin/com/chantha/jdbc/jpa/model/view/ProductWithOrderDetail.java new file mode 100644 index 0000000..dfc3363 --- /dev/null +++ b/src/main/kotlin/com/chantha/jdbc/jpa/model/view/ProductWithOrderDetail.java @@ -0,0 +1,35 @@ +package com.chantha.jdbc.jpa.model.view; + +import java.util.List; + +public class ProductWithOrderDetail { + private Long productId; + + public Long getProductId() { + return productId; + } + + public void setProductId(Long productId) { + this.productId = productId; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public List getDetails() { + return details; + } + + public void setDetails(List details) { + this.details = details; + } + + private String productName; + private List details; +} + diff --git a/src/main/kotlin/com/chantha/jdbc/jpa/repo/CustomerRepo.java b/src/main/kotlin/com/chantha/jdbc/jpa/repo/CustomerRepo.java index cf1b6af..236acac 100644 --- a/src/main/kotlin/com/chantha/jdbc/jpa/repo/CustomerRepo.java +++ b/src/main/kotlin/com/chantha/jdbc/jpa/repo/CustomerRepo.java @@ -1,15 +1,20 @@ package com.chantha.jdbc.jpa.repo; import com.chantha.jdbc.jpa.model.Customer; -import com.chantha.jdbc.jpa.model.Order; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; public interface CustomerRepo extends CrudRepository { - @Query(value = "SELECT * \n" + - "FROM tb_order o \n" + - "INNER JOIN tb_customer c\n" + - "ON (o.cus_id=c.id)",nativeQuery = true) + @Query(value = "SELECT *\n" + + " FROM tb_order o\n" + + " INNER JOIN order_detail od\n" + + " ON (o.order_id=od.order_id)\n" + + " INNER JOIN tb_customer c\n" + + " ON (o.cus_id=c.id)\n" + + " INNER JOIN product pro\n" + + " ON (pro.product_id=od.product_id)\n" + + "\n" + + "\t\t",nativeQuery = true) @Override Iterable findAll(); } diff --git a/src/main/kotlin/com/chantha/jdbc/jpa/repo/OrderRepo.java b/src/main/kotlin/com/chantha/jdbc/jpa/repo/OrderRepo.java index 8318e62..1e1bb47 100644 --- a/src/main/kotlin/com/chantha/jdbc/jpa/repo/OrderRepo.java +++ b/src/main/kotlin/com/chantha/jdbc/jpa/repo/OrderRepo.java @@ -5,6 +5,8 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public interface OrderRepo extends CrudRepository { @Query(value = "SELECT * \n" + diff --git a/src/main/kotlin/com/chantha/jdbc/jpa/repo/ProductRepo.kt b/src/main/kotlin/com/chantha/jdbc/jpa/repo/ProductRepo.kt new file mode 100644 index 0000000..992c05f --- /dev/null +++ b/src/main/kotlin/com/chantha/jdbc/jpa/repo/ProductRepo.kt @@ -0,0 +1,13 @@ +package com.chantha.jdbc.jpa.repo + +import com.chantha.jdbc.jpa.model.Product +import org.springframework.data.jpa.repository.Query +import org.springframework.data.repository.CrudRepository +import org.springframework.stereotype.Repository + +@Repository +interface ProductRepo : CrudRepository{ + @Query("SELECT * FROM product INNER JOIN order_detail ON (product.product_id=order_detail.product_id)" + , nativeQuery = true) + override fun findAll(): MutableIterable +} \ No newline at end of file diff --git a/src/main/kotlin/com/chantha/jdbc/jpa/service/order/OrderServiceImpl.java b/src/main/kotlin/com/chantha/jdbc/jpa/service/order/OrderServiceImpl.java index d1c145d..c58d247 100644 --- a/src/main/kotlin/com/chantha/jdbc/jpa/service/order/OrderServiceImpl.java +++ b/src/main/kotlin/com/chantha/jdbc/jpa/service/order/OrderServiceImpl.java @@ -3,6 +3,7 @@ package com.chantha.jdbc.jpa.service.order; import com.chantha.jdbc.jpa.model.Order; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Optional; @Service public class OrderServiceImpl implements OrderService{ diff --git a/src/main/kotlin/com/chantha/jdbc/jpa/service/product/ProductService.kt b/src/main/kotlin/com/chantha/jdbc/jpa/service/product/ProductService.kt new file mode 100644 index 0000000..75c3274 --- /dev/null +++ b/src/main/kotlin/com/chantha/jdbc/jpa/service/product/ProductService.kt @@ -0,0 +1,9 @@ +package com.chantha.jdbc.jpa.service.product + +import com.chantha.jdbc.jpa.model.view.ProductWithOrderDetail +import org.springframework.stereotype.Service + +@Service +interface ProductService { + fun fetchAllProducts(): List +} \ No newline at end of file diff --git a/src/main/kotlin/com/chantha/jdbc/jpa/service/product/ProductServiceImpl.kt b/src/main/kotlin/com/chantha/jdbc/jpa/service/product/ProductServiceImpl.kt new file mode 100644 index 0000000..e99b733 --- /dev/null +++ b/src/main/kotlin/com/chantha/jdbc/jpa/service/product/ProductServiceImpl.kt @@ -0,0 +1,34 @@ +package com.chantha.jdbc.jpa.service.product + +import com.chantha.jdbc.jpa.model.OrderDetail +import com.chantha.jdbc.jpa.model.Product +import com.chantha.jdbc.jpa.model.view.OrderDetailView +import com.chantha.jdbc.jpa.model.view.ProductWithOrderDetail +import com.chantha.jdbc.jpa.repo.ProductRepo +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.stereotype.Service +import java.util.* + +@Service +class ProductServiceImpl @Autowired constructor(private val productRepo: ProductRepo) : ProductService { + + override fun fetchAllProducts(): List { + return productRepo.findAll().map { toView(it) } + } + + private fun toView(data: Product): ProductWithOrderDetail { + val view = ProductWithOrderDetail() + view.productId = data.productId + view.productName = data.productName + view.details = data.orderDetails.map { toOrderDetailView(it) } + return view + } + + private fun toOrderDetailView(data: OrderDetail): OrderDetailView { + val view = OrderDetailView() + view.orderDetailId = data.orderDetailId + view.price = data.price + view.qty = data.qty + return view + } +} \ No newline at end of file diff --git a/src/main/kotlin/com/chantha/jdbc/jpa/view/Entity.kt b/src/main/kotlin/com/chantha/jdbc/jpa/view/Entity.kt new file mode 100644 index 0000000..c3e13f7 --- /dev/null +++ b/src/main/kotlin/com/chantha/jdbc/jpa/view/Entity.kt @@ -0,0 +1,18 @@ +package com.chantha.jdbc.jpa.view + +import com.chantha.jdbc.jpa.model.Customer +import com.chantha.jdbc.jpa.model.Gender + +fun ViewsInvoice.toView():Customer{ + return this.toView2() +} + +fun ViewsInvoice.toView2(): Customer{ + val data=Customer() + data.id=this.id + data.cusName=this.cusName + data.gender=this.gender + data.orders=this.order + return data +} + diff --git a/src/main/kotlin/com/chantha/jdbc/jpa/view/Views.java b/src/main/kotlin/com/chantha/jdbc/jpa/view/Views.java deleted file mode 100644 index 2d504bb..0000000 --- a/src/main/kotlin/com/chantha/jdbc/jpa/view/Views.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.chantha.jdbc.jpa.view; - -import com.chantha.jdbc.jpa.model.Gender; - -import java.util.Date; - -public class Views { - public static class Public{ - private Long Id; - private String cusName; - private Gender gender; - private int orderId; - private double amount; - private Date orderDate; - - public Long getId() { - return Id; - } - - public void setId(Long id) { - Id = id; - } - - public String getCusName() { - return cusName; - } - - public void setCusName(String cusName) { - this.cusName = cusName; - } - - public Gender getGender() { - return gender; - } - - public void setGender(Gender gender) { - this.gender = gender; - } - - public int getOrderId() { - return orderId; - } - - public void setOrderId(int orderId) { - this.orderId = orderId; - } - - public double getAmount() { - return amount; - } - - public void setAmount(double amount) { - this.amount = amount; - } - - public Date getOrderDate() { - return orderDate; - } - - public void setOrderDate(Date orderDate) { - this.orderDate = orderDate; - } - - public Public() { - } - - public Public(Long id, String cusName, Gender gender, int orderId, double amount, Date orderDate) { - Id = id; - this.cusName = cusName; - this.gender = gender; - this.orderId = orderId; - this.amount = amount; - this.orderDate = orderDate; - } - - } - -} diff --git a/src/main/kotlin/com/chantha/jdbc/jpa/view/ViewsInvoice.kt b/src/main/kotlin/com/chantha/jdbc/jpa/view/ViewsInvoice.kt new file mode 100644 index 0000000..9ce3717 --- /dev/null +++ b/src/main/kotlin/com/chantha/jdbc/jpa/view/ViewsInvoice.kt @@ -0,0 +1,24 @@ +package com.chantha.jdbc.jpa.view + +import com.chantha.jdbc.jpa.model.Gender +import com.chantha.jdbc.jpa.model.Order +import com.fasterxml.jackson.annotation.JsonProperty +import java.util.* + +class ViewsInvoice { + + var id: Long? = 0 + + var cusName: String? = null + + var gender: Gender? = Gender.OTHER + + var orderId: Int? = 0 + + var orderDate: Date? = Calendar.getInstance().time + + var amount: Double? = 0.0 + + var order: List ? = listOf() + +} \ No newline at end of file diff --git a/src/main/kotlin/com/chantha/jdbc/utils/constants/Constants.kt b/src/main/kotlin/com/chantha/jdbc/utils/constants/Constants.kt new file mode 100644 index 0000000..9113d2b --- /dev/null +++ b/src/main/kotlin/com/chantha/jdbc/utils/constants/Constants.kt @@ -0,0 +1,2 @@ +package com.chantha.jdbc.utils.constants + diff --git a/target/classes/META-INF/jdbc.kotlin_module b/target/classes/META-INF/jdbc.kotlin_module index 924142de9b451f1662fcb8582c0c35f19fc9c157..4c9292b42677665214679c3b9f6714d4b824df9b 100644 GIT binary patch delta 44 zcmXqyn_#ZarOG9loS&0JTu`LDwMcM|w diff --git a/target/classes/com/chantha/jdbc/controller/OrderController.class b/target/classes/com/chantha/jdbc/controller/OrderController.class index 605690fe2d52b02cf8cef37cb409f1fbe77c87fb..eddcde5025e6314d1c9099db4b6eb79476b0c65f 100644 GIT binary patch delta 369 zcmXv|yG}wu6rA0?EcdR6h=>9r0*bsuV{D8Kg$>4vL_$JkB87!ES1Su?`~clQurjeQ z7Di)X2&Et32Uz$EcE-6FvwP0WoHM)Ud`*71=KbgO4Zs%Gug#S`5KY@q7q%`+%7wOB zS+w^mV-ID$Fol>w6w?B#TH z)#8yC#H-Jkt=66}_sE(=g;~?DVNfMc{&_Kv6ct|uJF;IR4}6ALXM}?x6C`U4uA~XF zi$(xg9ozTFLey#IOb@Dsh4IZ|@n7XySVEpv6nYRoidgPJ`$+j%@dFa};rS^20vFgb Av;Y7A delta 912 zcmZWnO-~b16g}^iPTOHxOVJh!2!htOC{q!NSU?dFiWLng(XblZ5eJ4T=}a44!N!$t z>g+Xf#ZnWE=)w>ZH}2f{6Z{$KooR_0lJ{}%nRDMcbKm>n{}~j&{rda`z%cT4@mcnf zW|XFM{dT3KRv045RAF7IDRR})bh)6JR*oTi1RSrwineW*OR6rrg}F(h4cG6cVsol> zOWE4ej5R{MHASzg3{18cSfc)7Iw&ECPyigq807kEx!^+^gRg0VA$lmKE5@3fx73RA zP*-yj+Ht%U5u6}O*|EB;R%%*N9c)%6Q+~v3ll6C;WautFR*M_6Pqr$mX=-I-#c^Tp zvXS*pbcu+go1u53Z0VXI7t6Y?7A<0#^7P;MrsYEqgJ6}N9xx=5jkf%6>qxI8oJOCB zUi90)*;xJi(@{Ty3^CWx9i^gds`N{FbFpkKR&`y%K*P{^22V1zBHEG+Kzw$yLu&k{aidC)HAx}?h=TgN8IP=yePthv4ln|~{EH&sjiv(rUF2|1< z+C%guKvP@=Gtr7!!kkKpc1CU4PBt}X$O9)ZJP=9m;X?W&GUH^Iq#1SbR?bQQ?%cp>7z&LYRysNWyEq$n|If%4*MRK3Gfndk=CJAc=EX9j$w=( kX4yPOahXtzxxaA*xm5&AButE(2$~3)NSYAbbi%~sAM*vcod5s; diff --git a/target/classes/com/chantha/jdbc/controller/ProductController.class b/target/classes/com/chantha/jdbc/controller/ProductController.class new file mode 100644 index 0000000000000000000000000000000000000000..fa675b306f8b2a2ce1632d3cfd3d8358db22d6de GIT binary patch literal 1639 zcma)6U2hvj6g{(cypHQQTT|*JEv2P}ItlH#X$l30N@**=$W5yl1*ANUcPIAP>s@PS z?1;Dg27UrhJc0z`;{io^WGmJW14xs zS@(v54?<7+e5~Z*H1jW%>As9S89kRqD8K%M=r;d%qMu0fLJWs=Aaa`<3x6aT@_d%< z?S!c(O*;}Q(5KF*`A%qdM!rvurPRJ9qp@;{;nDfo>xq6!KRrU~Rxe@!rFmFbWO#V) z@h>K@ahXbYAdTDI_WiW7x`@|cUqTsI7_z3TGy^}I-bF1zC(LcBK$$1h1J$#>abYgb ztiHPUZ|&2Tg6{P|xF(FgI(5H%dt|~x6-lq2#{$ERerS9Z@ZNa9RbXTk2%k5okEtxm z)i$m(RNSs~`>#aYn`F_@X^9x_Rwqq&s-^3vB(0dHLs=Ga18)}a25vHBsxe-|TLols zo8fXZP2mM~nkS5)d$9)N49yvf7l&Xwfrudu4C|A~d%)lwA6+k4OIE>hj*klTB>Q}f zZzlWWqkLuQ_-Mnbv8Ri9yPR{Z6|0sx`6g#M+0RPO+)BQjEn79amix4_TbgLUJo!2s zTM*&Nx4C>AYlBfTG^pox&wmdObx8b!V7QWY&tLzA`+Y;&XEc8di%k{Cozb8zqt8X# zCrP;(y29TRk&1CDoNuX4Aj~KtgXP^(VAMeFDXqw2d-kuOcD$DA8o~G+?VW#WXZ8IX zi9=QChTcp`yoFXcid^}z@+EH3SY_i%(IC*2(axfM4mL?Q32hRhyF+2^2ROgrb%yT} zn@6V`LSx zZ6)i&#JWXzj_}*GzO#=^19y|Biq$DvYhWGkk`(unL)-`7$Gk>Gqo%Q-QPNn}$R+TB G#>SuJ-LSF% literal 0 HcmV?d00001 diff --git a/target/classes/com/chantha/jdbc/jpa/model/Customer$GENDER.class b/target/classes/com/chantha/jdbc/jpa/model/Customer$GENDER.class index d628435cb2cd2aa4b2d4b47b666c474367997d4b..0048980938d73e4a7969b7a052689a6617ec79a7 100644 GIT binary patch delta 31 jcmaFQ`JQvbA!bIA$%mQsf#hdqPatW_(hnrhvM2!nvBwGh delta 31 jcmaFQ`JQvbA!bI=$%mQsf#hdqPatW_(hnrhvM2!nvHuDI diff --git a/target/classes/com/chantha/jdbc/jpa/model/Customer.class b/target/classes/com/chantha/jdbc/jpa/model/Customer.class index 7a32d6251ba0d77a45de233895fdba7b2f732719..0961ce3101710e04f396e932466cb00ab7bde865 100644 GIT binary patch delta 469 zcma)(&q@MO6vn?>j(4s>kY!~UsYwb2R=UVaC}_0FO6|W1LFp8=P??#H(7FfcQoCr; z3)CuT(F61ZJwb0!%jk@xn>KAe&iS41-0#A<_B{;8-@ad70VGlOfFm#9M!}JyBU_Ga zbL?>Ja_n*JKgFMwZib}%WD|V_v)(XFyO}quhPl9yaA-oW8a4aeZtAtuIze$})C}|3 zuA3YshR#y9jTy4E7oN_aTo@HwuXYAjq#e*f^q$)IO_d+Yt()VJL6cuB6#dV>^GEV} z|9a)6`(6pag;5#gMc)`zK?sDEuXv8utmhz->vy`?%SJ1$av5>_o75*|@77`W) hEDTx*Kt~tWD%ij#Vf2vSOT;;mXK4gE9AMogegKZPbie=r delta 197 zcmWm8y$-=(7{&2Z@%C-sCJaK5kormtgn_}(Mg;XuH}~NV3}W_#)nK!kBnFd-yD;|} z#M9-U^V`lPeMmOmzsD0m3%-KH$b^n@m`Rvvn3=>}Vj;1VSlt?TK_C4@UwIZeM3JYR z;U{fg1(+xzh7uAeBZCSB#!;)%)^tP-0(E+szSg9aazu;WrnU054qe#}+ogcrBi9;; cA={(9wX)-gpw9;f&@kMK_XQbCklN<)D*K+-#x(!K+#)SVw<-l0oW zL=h4THb^XZ5>`Aw7ghf=Mse#T3!l08T)sK;&vEv5rgHP=;u63Nz78UZk77QF*%h-V zX5YgA4wCqs#9}SUQ6`;Vg{y z%x;M>lae7oI&`~FA?ZB`)I38R#f9XpVSzRdWyPV&J)st{#2Q^tmO!okOI0P+j7iZA zHG)(GHDaLZSQaS#&`VE5jhXAou!85ppbx##KzzeCEU@5WpMn`=qkFml+~um z_zJJ@Gq(7*BO*sYZ6m?3ds_tE?gLstk)TaRh^8fbfr2xt+7nq7xEEI6;x69=tth0* zG1UAy+<0eNNTA(0M|2EH&=O?b^h>I$zx(6E@;d4)3tl5%hyLNurXrlI!ErIK@BDne Y%|pJSr-iqs6~mmp-^@*K#UQw$F^T9vs_g=kzv$^xb|D}Ta=qr?s z8Y-Kg;kV>CG$vT%926Q`IFAC2CN5C6c-){?)PC&?)Mpx+G(cbvE104!0d&AcOj9dd z!ex3%@Eo%Ixjxtr7A->{=@g z6%A0uc#2--g{!{EL;e#N#?#~)ZShw+W_CA)SH=Bj2(G)bcpaI%uuTU;O;PaQ6Niz?-1o>lEs8PDyR@PurL-w2Y3!s~UftE%y=QmN-hco5`yV1&rFw?av^7O3+UDgs zFI8T4czKbcT8eg4w5QM|$88F?EIi$`s!fG*wT}L?u35U>(rS*~T2pBLU|@S@R~(sr z^Vkv_w(WSjXF7IYp*abErS*i{H~XHj4WU(=a9WJ`u`O)j>YivG>DE91lcUYBOXnH%>gZ4WF^M6yIP z!0tU{n2|w)1};zbdDFs-ygBe%nOMd%CrR(DI0`LIbdou&vC9wd6t7yoIIl^FaYC6x zXW$xQ%VeeG#`=4g-ywyrModQq&yjb!mZfD{$x?l3>c<_ygET8mrlTDS$ksA{Vd>JRcs$b>xG7R8#uwu|ixK8#NgK(X^WcD^WCx;>;=`1&F)EXfFSJ}S5#_@J2g;HxS)FsJ)6nJ}mLZ}>UR=}si4 zReAu_+nlZqDIVr@51j6w!-+enP{3(Ma{7uM!sK&`$&#q0*Od4@#OXmKr?2VJh*KOI z;5w}gDG}!M2%H|D!->^2;xsEcJ*KrF?0E0gaPQV5II(!Sv#dsip3pZDfs)}sn->OJ zr>CPt#{`iKC%TP9pP!ScKLJ7U7bU-MX(KAE8V>scVQc4v^`|fhJ14^~)3YG#uV_jN zwmc6{X`njx literal 2627 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 literal 2448 zcmbVNYfl?T6usjo5SLd76elUo6JuyLZAeJ4LkqD%R1P4pkov8|?qIKL?^^4175+y5 zNLwkWQa|(u^hZ@acXqRW#6hKBW_Iq}$C-1_%>Mn)pMMe2I_*tRn!X#S6m9dc!^0aM zN@*&mX;;vA+jFh1>F-;DrYjBkvoxC0sTmd5sTBk*9(NtzZmCndW1ltEw&S?I^ljJa z2%6XK?~JzcI(Elbj;V}&3qkisZ0spVdD2(bscd!?oW?pnuWJ`q`lC|yqOJY+OXY*= ze)R`IH$uz@vZVyg_MtxUJzL{WwmsX#rYH%@xSplFlJce91nlsXUEgjR72pPz@e{k| zNWbeLVlzk=Z5J!1+cM0$bo{zB8rGRVw~{p7jw&H8A+UET_5N|v|x%EzF$ zCEIOf?SS5NNSB~g(ROTqOHe$waw;hC28R$dRk0m)&~2S5uPV`GrqnfM^Hh2^uR~+P zuiK#S;Z=Mb1!4l;OilUWilsH1Tj^_4D6ULrz~^Re*o8q(zg2$SwT`5RZi7}pnC#^a zBrrFSJrcoWFMr^7tG`0%#x=%tLM<3D1Idi(NNq^uO6)QPm%eTTMRcS{DmZrW1Cq#i zE&Z(jH~s8DR{i3c0^C7xAGnNQ6!;MHgMG!t3VZuHBqnmd25L_HqMumZ-M&_aM3(|n zR6-;A@qYwf6Whdz+x1MfYqPR5p(da3OD8C+F%3RpWjuKPMIl2=^ks&|XgovHG?SrO zx|yLlx`p@ZiWecw58d|O(!;ZcGJU#-cQ=h^IYBW_OM)h_n!)M@<_y-KDVn4y7*G(V z7}wM@%3?LIzZZ1aJl3CMy@)xh=r-M+t&+ClEwP zoxph>;EQX+i5}7;%z_@%GDc2dU=9+zr`T^W#E285v~gi%aE?~s#lc&cxlk&H!GRMO#)N$F(&Sb zpb*ov#$?db2vZDSO!Rw7{ECl$o|Z>q`kKCpFvTg3m{flGk`lw1R)J~l6Fjj#B22Ry z(=+_`;~(*q9Omii2uy*#o@;$^hhOM~8}u?vcm%vrKa-3zuGJ98X&pG9e*!1#SI{d& z1X4>ucndw`bJz%qZ^F1lg|Of+m{ZuxvV66O@@tnA&#!={{9^Kw`aop0=LR(W5_jtr zF488*Dd2(>H7JIMOp(a4p~%?At>uGd^@ZbBWcj8eq6e8R3$U;NW)fPIECMFI2fv6k QuVINn`+T{X#czrJ1s|~Z{{R30 diff --git a/target/classes/com/chantha/jdbc/jpa/model/view/OrderDetailView.class b/target/classes/com/chantha/jdbc/jpa/model/view/OrderDetailView.class new file mode 100644 index 0000000000000000000000000000000000000000..714417c13537dcd7c7356ed2e8b67c54a36c106e GIT binary patch literal 1055 zcmb7?+iuf95QhJ?9p_NDO;cKE%c-2|6bTE7J5X;#Q?*m@MaSN!T#>hj5zxOIO%OvuY`P1=pyM>^31lbVEFE^EA( zrr8_YcKK9hI(}U;3cNlVPl5rQMS%emhvU~Ir1T*^O+xb~k`dgvz$;xmlM#DZ#)^kL z3Lc6md02v{5d7yrh(FucVXJ4t6uaE7%gx)c z{m8<~ly2sm#oLiW@iJK&nV* z2#E`R06z+G9H&WJGELfz9oy%e_wjq2KYxGy27uRaT!cI{bjU$d4lOwx72st7UJ=lz zf$z+1@xdWbvBvb0nlAN*rsaFXHi1%fd`>5fKy@jgCjuUZ6dWcfcV}__TyWR4_)K8F z-s3}$ig|$9rz$%>KCx_nV%j6>i4ir&&cHUuQ)*6phq>k@XJ5>Vz+u6=uzVla?G9GV zpKyp9Wm6qs^=saRhyPqjFcd@|la# z5(LT{Lnfj_X<4<=T=FC`&6uskY&X_JBzWZ`6C>a0(g3X$EI_PsQd{}Gvr;{Fyqwfm zakXWIC`@V;v7oXKtH-Eu1MoWU7Ygy_?YdG#q*!Tj;kag7!qlymhJ2kansOG=$Kkg@ z2(R1o=Yh@6xa|L4dJB)`6E|QJDh3qbjsZFp4Jd&@;LT0XF})(TGWl&T24iLmIK*Ep zk3U}qG^v7LniL9W)B*w<;ddEN@$o_h$1U73aV9wDT0en&4@0Ur=G7)_xk+sdzfWIMQqP4)jNW~f%?@%5Dx+7ccp!DqPn99J5= F_y_*cE<^wT literal 0 HcmV?d00001 diff --git a/target/classes/com/chantha/jdbc/jpa/repo/CustomerRepo.class b/target/classes/com/chantha/jdbc/jpa/repo/CustomerRepo.class index 22861813cd31586ff8f66e343e5e7d8c4c41114a..b3a60a70c9eba91441bf3df6f9303769613c6c9e 100644 GIT binary patch delta 205 zcmeBSZDpHqtA2m5tB- ms=S~mKczIeL;*-c6ayK0P(hFupgjnlCKnec=VnF5Y(@Z|i9u}u delta 63 zcmZo=>tUU6OU5nO)yLI2L_te|%Pq*?SD_>+KEEg>wMZdfforlpqok0(pMpldUUF%1 Sd}fMmvR-D2=H^+9*^B^LeiGmS diff --git a/target/classes/com/chantha/jdbc/jpa/repo/ProductRepo.class b/target/classes/com/chantha/jdbc/jpa/repo/ProductRepo.class new file mode 100644 index 0000000000000000000000000000000000000000..5f6934c9990d188a5f3fe24259f039c1665478fc GIT binary patch literal 1163 zcmb7D-EI;=6h5<1C{&SFt+che+Saz3bSmi`)ud@4(oj$^Uf7ssV5f9o*&#Etm?mEE zI6i|Hrt#8;GM-%^V6!Hg?9R;jo9{b6^YhoY?*MQB+XS{+vPWB&%rlpacARF5cKVDe z-k0>Pl8)apbv!455cpE*umPhk^V+o5?C_Q;RHSNC-B-eEUnth&pQY+jhndk0S{SLW z=&|yh;F6JeScydJNr$@=$ifU#MSAVR>jHu7P4pzh3FQBuK@t)KUPMyYhAS@3RiD!- zW5iBg2+uikT>{HHyEEj<=+BxiN0-A$!#`ykWJe?Ugr%G`WL(a7K37*5F*jhY&k1~L z6f4E!_x5wURIi=d{ZZHKafGUm3D>Sw?VYjD-grM3&Z}9U8T~GS z1&ly;7hG=7@eT6Musr#N0J^n#xfzx#~EiZw!v90V4BCP3#^i_+Ogv*1BU=9(J zLDTT5q#%vO+d#>J1=tL#iq=~w-PVwSJ0DTrLTv)Ii?~mGWAH4Dc^bx?qW?U~_werf sXAmnxHvE?1!9>cHVFgxE3u|XUG(3d$Ge~NOV literal 0 HcmV?d00001 diff --git a/target/classes/com/chantha/jdbc/jpa/service/order/OrderServiceImpl.class b/target/classes/com/chantha/jdbc/jpa/service/order/OrderServiceImpl.class index ca4d9329ef042f0c642162e733d6eab9c1a78b00..938359ddd9ac5f73c7eb5e4a0c0405c1b6b98a31 100644 GIT binary patch delta 155 zcmZ1_xk_?FCOaeNCQ6&tTM?e3H|GQGap(m-u8!E;B|GAj_B063pMq6~JgWnT^|lk$v)gZmG$M b+=gJ5!sN}|+F+J9l<&<0;Y&@P$Rh~=y-_GX diff --git a/target/classes/com/chantha/jdbc/jpa/service/product/ProductService.class b/target/classes/com/chantha/jdbc/jpa/service/product/ProductService.class new file mode 100644 index 0000000000000000000000000000000000000000..16169fa0a734bb64a9de8f5010d17d6bf046397d GIT binary patch literal 776 zcmah{U2oGc6unNfv@0;OGN9Y|l915$GM51YX$WZ&LUalnqSAQilaqLfQzx!$Clhb| zIs675P{kuZ3UQNlLTD98*1bMA*T?6c_~);0-vQt`JS6ZeQaO!MR@ju$EDj@@O&K*@ zS0dtcs#RP@mVUg*ql-3$jCb2T z&VU@P`Oa3S=k}a|J7~Rs^5d(wQXk(Z$PcfUi~heoIClL4Q2yWldv9V1td2xdFk5O) zVEa>9SdsH#Q3)eL$q)aSNT54XrH=SJA+dFH(RzBN(L=@H;`FH5CE!6D@irm{I&crO zhqJ6U_sAgXboYlSvSGIMC(K7!7Z%9#u$i!+i+(Lo`Guy?wWdo Iv2S4WH)U7TjsO4v literal 0 HcmV?d00001 diff --git a/target/classes/com/chantha/jdbc/jpa/service/product/ProductServiceImpl.class b/target/classes/com/chantha/jdbc/jpa/service/product/ProductServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..2f7042635bd711c3dfe0a719c5abd609a2557099 GIT binary patch literal 4671 zcmcIo`BNL$9sfK@XvHExmNB;M*da!?L4d_!lvp^fiH}&ezy~Rg?bOa9EwCW8M7zRv zoP%CDdZkH^#BF+|N7DOBz^-RHjDP7&XZkNS{k)Zg7NRPd&UDb~?R)S0zQ^Z#ys!A@ zzyJ1k0Eci-;L(h^5YNnNd3#oi&t<1F@wr7UZs~<3BcsO`3ud;MvE%1U<3wpWwXm2| zAOu2l+L9K}Y5AG>xv4olV=M3q4E+x*6*LHRrOm=j+*&Lc`I+g0wxHiI3-fWy)(g66 z-&)k;W%(nNJgwWA+0k6CteGVc?&?lE`V?&=7f&0OO}g|a7LTNBs<&Wf^;~?(&~H?X zy=2(4=L%W9a6-2=BR6uC>^dC{=X86jpc#29uI2Nlt=Wdj_i@u6FXnQjYAVBaQC~C# z4%8M{;ATaXBpeAMh~`Fk&?2y}rjDDBC*JppySo|v!vP~u)VrHVLY#&BQ(=mF=q?x z=qh2qQFN+16~s>LQW3#J0{$aL-ms4f__|WvlR@mk!z#9;L!hmyS5>Nlz4U4|#3~jk zhzbM@X`gKtTy{H-cc{2dyZ7Tj6ZWC2!ezt0f*8S@)vR&-CJpd*bzcdh7ky3W!9l8+ zcb3~WU|I@ta_+}~q#G32ThmjeXe!61fP2Y~2|TJY ziXNj)S~e@N&Fz}91=7|eMw-xxBLXc|^h*Ij7kLbV60N62**eC1JZeO>Xy1ai*jHY3 z6^iKQOpOi*h?Iaz4=zNFC4T52SNN256xb5AXALV#zE7DI!ZsISB_OE6maJ~sM&3!q z3TeBm98{x<#47cjF0mB|t_yJ#2~_qN0#drb;o2a4dWobYUskg;ecC7$r1@@H7)7;WR+{iQY^I9&R%1d=DBV#F;6WE=Z)id)aZ!Q*e%VGhW)N(~V zWtGb^>#*DQa*Vlx$)#!z3o7Q37ua9NaV`@SECz6l+S{gUwUqBy>*l+Q{4?adi&`?L zBP`f5*^3NnI-+z_F=i`%u3m-G1vhY0y5N?)X+N7`4B>rsle<*aWJ>#FAPYQJk8_<^ zrzBoJHChqZ#k|RU1uv^umN^mH7*VNg5MPoh@EpF(O#x9Jb8~CO?_AOR(9=l)@NM0Mf;=YYH<)OE@!9&~#;=A&0 zTgLYU20j%Lmv)X@1!DijL7O{(k?u(ed9Ai-O4rzwOluk5g|}RdN_@0vn>UPto*fAw zDDQNcHs>|jZ!xjf6DEismeSx|6+Q{_mUKA@$Jh_aG^NWt3rk*hl0ts57x7FvQ^+YB zK{3yzEMw!{wdI4VXNSjm)|N}J0Zv05?xph1`ViQ@V{LiR(=VQA4JcuM$g|Va?|tx| z-xKnkX$dv#41|4QPruUdKiz&N6bf*+anK)9IX0aRb0x?(rM%L7I()IE#Np`&Z}}t_ zb#3{<2Yz;2o-8l&;o5GhU*-t`82Ykr=0*F-%kSVkZ&BZI_Lc(86SkI_ALC^v+cK8H zw2{}xiwjeFp}Z1Kn;9)PsTB-KQC@7EFlKnK6$?DF>tZo)8w+|WzhqbjX-2F4Cj*_1 znKiTPu4EmEln+eSAdhZlwtjE}S9QWH7Bc!NL+adCnw-$5iZdr~+B&PRna3lnKtAH& z=M$D)EZr~X0W>lc{y>O!avtRBOzcCn-orLF=HAD9#_wbM<(`mw7rR&S$QnA6K5wF- z?;g4ZlKzPQ9^wLb5SMR5Tv8&wh_Z&^WFV<}6OFM*U=@dxO%XNHbPtbvaOwSz{}u7A z;d6hI@rOV1dlx((vr$tNcoggtd=zwY=mGB=NwxV3RXv7spkJ-3#Q^%C$T9apCeRo*L`zS;5mQct(!Tt{^MN znag40F3dIT8&3wk3145bL4w=o2G{RRD3OK|x`9ZbjP9^}ljt@^{E@~rJeO3H&E7;) zETUcx7szuJOUafJn?*iXf~04 zzvGEUdgzSfi3aCQdcx10Cml~H69-zPWj3TUX{-H`U>8V<9Al@eFq(nV{kh|0eFZ4chlfK zH0fc6ONV1v2e}3KQ|U#TDuZM1x*~fi`}Rgf*bm_yMg^mTwt1Wbp`P#$?&3$WRs1;C z^ATDlS|zbEru@uFxzb*uU1u)izM1(|{U&f01$tqyb!^bQ?L4yXe|iA3jMa%fl`I5afeIoLat97?RO9Q`eY ztL8b?P>uaRY?SIHItLt`IF>XT9Fi-CRXK8{q>bZ3o$it4>?e%0pI(JGg`YW}_we(| z>=!Bg62Iaq-oFZA;RF2oDq1a!TlkH|p9^TV@Q%gi2fwxOk_F4c+ZN7QxNRX}VbsF! F{sYPX+t~mB literal 0 HcmV?d00001 diff --git a/target/classes/com/chantha/jdbc/jpa/view/EntityKt.class b/target/classes/com/chantha/jdbc/jpa/view/EntityKt.class new file mode 100644 index 0000000000000000000000000000000000000000..bd55d41d7122ada25c990f56e62606a616b57250 GIT binary patch literal 1636 zcma)6U31$+6g?{^wyQdc>!eAOLV+et9S15Ww0ya=l+YGa)hSK!43np|tcll=B}Q5s zc+1b>ktfrE879LcKZ@b3KN6>;OlKtR-rck3+Ns9YhPox4 zcC+C*?H{DmQ~r<6!%!>z^Anwc5XiS>Pdb4N51idb+xNJd5=iT)PN=|c(S1FUfh5(i z7b(xLY@845L`^?%cDjjzEz-4a z5LB|r2wXdibf7|~-Rn3i)P5Ywz^R5h<|*YR8Q20#Ud#6mpUGHud?KpJh(X|H(S0@0 z%EZc^p*g5*)N{yT#>Pd=3S@>pZs(9k+J=Qo0&koSftkrbx3gFfSUoqFXH%5HBJ+P& zg-YKONEMAwSFmhj2`d8Y=Q0egb@DbccuQdVz}MBLK%uxX5vm(8&>XJe9UE`sUBZ$f zY<@CD1C)`zj#VSQCSa3}_gG_Y1s2Y5j?$OII&K=)BGF_$L0_Jvp2&3xn}+;-feR#m z?1xQ17Pvv~bHf}aY6xQpx8NADGEY-%e0u#gS9IpEiEJAm8u8l#S&Hw*1MQPsb+rl{ zS0$Q4AK_yo^vO_YfJ_9&`8q`!*3VEetak;bno>(f^MA2S)Ws!t^n*Y3wKPXrD^{nM zVnGY@$xwmev(}28KR#Nq%A#bIjgcD9|N138 zWsYsrOVb+|*sv+wI@Da+Va*E6xhnK)-A==gU&uzlm4X|2GN{W~8GE#N^?8^5q~o&> zs6=u7!D$5xti8H>Qk-XCc?R8znkSn~ue}#_W6yu2jPmk`rv4uZY_Tw>m^V|?dYo6A(qungW=X}|D_=9k=$9I}d z;RuvrLm0{YL>Y@){ymJz(b(J{Cao{WQ zV$wh&nzR@D0Q*qW{^!~;sp|;docna{IX|C=>wo|I`yT)|u~Wtz?uocBVpGKLA|8m? zs-TRAB{WNTq+qnV3Jbf3&RfUsIsU%AJMj1KDwH~-;WMZ2DlASNz6=9T9~bvszv~7H zmv%dYzTG)+{P4iB54-J-efY+)`-86Avv;(TSQ`Y?7FVjJP;~l(ksor=R4D7CrW4Xt z%rOeRo-I4PS=e_&xwlxWPjSSM`3Bu6oY?hz_t~i5c7s<=yQi549jCYF1fHzp&3t&^ z4e9;GsNM5A3TDgq-JsEPhC`S8wd^l>>$&gjJ&NJw=%PRkBdAlgG*f+#A@wArPu=if z(0$EKrz87vP&=r@jr-P*HVk#$b(7qx5+6C=b>;K-%+07%I2sz7OYQDAGF#EWl?XQ#P^(=kpj-*JXd7H z1v-<&xVKFzdFri~d)QdSAmf@ZSuQ^I6$7S&VX&lJ=3Os4Dj zIbq5n$2&#q${2+-(=9UnGJ{Dm~WluUq`o1df zpUzlS9zoiaJ;_Bu&m;mR-Q_FN^753(`vWS2YT$b*Mf;nUcX5tmg;AM913#erKO*5? AjQ{`u diff --git a/target/classes/com/chantha/jdbc/jpa/view/Views.class b/target/classes/com/chantha/jdbc/jpa/view/Views.class deleted file mode 100644 index 4b6daf3f015581695f12f7b79c756c64fc60c551..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 376 zcmah_O-lnY6r9&~yLMe|t=^>|q8`k}Tg6MEAS@~l?rgP9pR%32_u+8seBRd}>u;H6gxt&Qyy+*0rfwzqQUbcZB}M zWl9(<%9SCE6YI=FyH=)pk*Z*2nv_}=sjO_r|HVO*Sh)N?}gT(*@qOWTD-UcJucM#c!SM>yS)K$vuHQAqbH9#w91Lpa~jboTdW%+TX$ wbc=ZNdyFGy!gC(l;Pb%O4?T|A1NQQ~xF^793(7rJB>(^b diff --git a/target/classes/com/chantha/jdbc/jpa/view/ViewsInvoice.class b/target/classes/com/chantha/jdbc/jpa/view/ViewsInvoice.class new file mode 100644 index 0000000000000000000000000000000000000000..9c6c1d375fbef744d8c8367f97186f3d3b21e0d0 GIT binary patch literal 4239 zcma)9ZC4w|6@FF-B-U%Oyc&azF<>kNW&t~nW3UqpIF>Dg3ocFSzAa)S7NlKQvm#F4 zLYp>yNq$8?^<&#pT24OX`1oUfR8ODTm4vh`#pl4z%$;ZMedf-+cShg+_nU74+``ui z#`A8;$nThrw__T++go{K_oZp<+t#PXCO;zU?7Mc}N~F+hu>XQY@NVMT@Z3g5_nYp({NR z)}f&lZS9CbRS@@fY@r~Xdpo{Tu?Q4*r^9+DHWefmIDO;&`|RZ_V%02Jq|gA|@XEHo z4VCyOkg^rQa8;faZg*LNv@`PTG4XaB~gZbnaEGG}r2H zuz7PiTX@{uJAs>hdQ!A7`TvgD-`Mb_a5SZkk1 z9*-l6#bZ2Ckws3y)iYBhfmNQz+Ve*%>l&WPWLd-a6m%Y&twv@78w&c;*+zS{pw;jg z-&gS*bV8TE(s#^~S!C*(*^BR7L7b-r+j|izrryEwL zCzAMyf}uUvE832+yI(SFCS%z#iw4=SR0%sT68M>d%lREEzqj)0W!Vyf#dcFVEh|=C zPZnJT*BjF>DC6@DIbJVQ8n%#EVS+^zlu}#q`+vklr#7?^kBxAHDf9MVT&@48)VIdfP}m znb4E#mvq%foU0;I>gxjnH2pjQDZPUL-3N3w1G@BX0($gb+UWBE7aD9_qKba~A`t`n z;QEMuc|h%ocg1F|kjqfBqGA0iVI%q|Esgn#t~CS3_3H$r^$A+a_<+d-c6;q@(_7798V-xSk(th|HkEWivczB6oLv+yn+KNA=R8+O4l zy-Jz66JO%BNEJETu~sXkEvx)oJ|SfBcJpR&(=6L^TosOm^*%GpyyTfPO$KyE(vG`b zpX3um-Eb@Ay!FtQx_g4bvb9wyti19p=9$azyjaz~d4e;qgcwU0kYLN_3mx=3j%1r) z8I)E6P11_)Tlyo> z3CTnH=TH1^WpQECiEi|8O_*q3n5cFp(F^F0BH9-w8fc0lD$ne6qJy{;L3AigG<7D? zD;SOV4*va{U3x02O6UY-zDKd_tL4v75OM6PTKi`_Tp?8GylPd znf4<*WwFWp6YGZ<%CsEe2ZtEX9O1_wcm4DT*1xfHi0Mq~2&F^Z&OB{dI6`@K>c$}& zC=U5mCrPy`3sZ_EN5>#5^dw8qO*A@Vv0AuV@Mltp;kWn;Te0zU@tGRB)zl~cGfmBG z4A*)O)yd)6;V>@pnYthT?X6~V>g?$3)ZDGRvucJfJNiWMg7IFUC5wvxw~tS2 zqgPpchF?&MU%r4M@GJcK1?B|K3;af4MPSzN+!VMa@UFleA!j>%VYfh!zy*PRfr|nI z0)qmV1g;1S)1;3{3jVM}N}xlaP2fFW__@G>z&(LQfd>K;0vUlxfhhq)U`F7o4;vL2 N6Syvr78nsY_#aOXQUL$} literal 0 HcmV?d00001