Fix Database Connection, rebase unpushed changes
This commit is contained in:
@@ -0,0 +1,10 @@
|
|||||||
|
package de.htwsaar.webshop.repository;
|
||||||
|
|
||||||
|
import de.htwsaar.webshop.repository.entities.Account;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface AccountRepository extends JpaRepository<Account, Long> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package de.htwsaar.webshop.repository;
|
||||||
|
|
||||||
|
import de.htwsaar.webshop.repository.entities.ArticleConfiguration;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface ArticleConfigurationRepository extends JpaRepository<ArticleConfiguration, Long> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package de.htwsaar.webshop.repository;
|
||||||
|
|
||||||
|
import de.htwsaar.webshop.repository.entities.Customer;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface CustomerRepository extends JpaRepository<Customer, Long> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package de.htwsaar.webshop.repository;
|
||||||
|
|
||||||
|
import de.htwsaar.webshop.repository.entities.OrderItem;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface OrderItemRepository extends JpaRepository<OrderItem, Long> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package de.htwsaar.webshop.repository;
|
||||||
|
|
||||||
|
import de.htwsaar.webshop.repository.entities.Order;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface OrderRepository extends JpaRepository<Order, Long> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package de.htwsaar.webshop.repository.entities;
|
||||||
|
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Entity
|
||||||
|
@Table(name = "Accounts")
|
||||||
|
public class Account {
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY, optional = false)
|
||||||
|
@JoinColumn(name = "customerId", nullable = false)
|
||||||
|
private Customer customer;
|
||||||
|
|
||||||
|
@Column(nullable = false, unique = true)
|
||||||
|
private String email;
|
||||||
|
|
||||||
|
@Column(nullable = false)
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
@Column(name = "lang_i18n", nullable = false)
|
||||||
|
private String langI18n;
|
||||||
|
}
|
||||||
@@ -3,19 +3,16 @@ package de.htwsaar.webshop.repository.entities;
|
|||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import jakarta.validation.constraints.Max;
|
import jakarta.validation.constraints.Max;
|
||||||
import jakarta.validation.constraints.Min;
|
import jakarta.validation.constraints.Min;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.*;
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
import lombok.Setter;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@Entity
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@Table(name = "Article")
|
@Entity
|
||||||
|
@Table(name = "Articles")
|
||||||
public class Article {
|
public class Article {
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package de.htwsaar.webshop.repository.entities;
|
||||||
|
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An Article Configuration, for example T-Shirt Sizes (S,M,L,XL)
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Entity
|
||||||
|
@Table(name = "ArticleConfigurations")
|
||||||
|
public class ArticleConfiguration {
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
@Column(name = "id", nullable = false)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Column(name = "articleId", nullable = false)
|
||||||
|
private Long articleId;
|
||||||
|
|
||||||
|
@Column(name = "name", nullable = false)
|
||||||
|
private String name;
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
package de.htwsaar.webshop.repository.entities;
|
||||||
|
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Entity
|
||||||
|
@Table(name = "Customers")
|
||||||
|
public class Customer {
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
@Column(name = "id", nullable = false)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Column(name = "name", nullable = false)
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@Column(name = "surname", nullable = false)
|
||||||
|
private String surname;
|
||||||
|
|
||||||
|
@Column(name = "address", nullable = false)
|
||||||
|
private String address;
|
||||||
|
|
||||||
|
@Column(name = "country", nullable = false)
|
||||||
|
private String country;
|
||||||
|
|
||||||
|
@Column(name = "zip", nullable = false)
|
||||||
|
private String zip;
|
||||||
|
}
|
||||||
@@ -6,12 +6,12 @@ import lombok.Getter;
|
|||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@Entity
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Table(name = "Image")
|
@Entity
|
||||||
|
@Table(name = "Images")
|
||||||
public class Image {
|
public class Image {
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package de.htwsaar.webshop.repository.entities;
|
||||||
|
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Table(name = "Orders")
|
||||||
|
public class Order {
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
@MapsId("customerId")
|
||||||
|
private Customer customer;
|
||||||
|
|
||||||
|
@Column(name = "time")
|
||||||
|
private Long time;
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
package de.htwsaar.webshop.repository.entities;
|
||||||
|
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
import jakarta.validation.constraints.Min;
|
||||||
|
import lombok.*;
|
||||||
|
import org.hibernate.annotations.OnDelete;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Table(name = "OrderItems")
|
||||||
|
public class OrderItem {
|
||||||
|
|
||||||
|
@EmbeddedId
|
||||||
|
private OrderItemId id;
|
||||||
|
|
||||||
|
@Column(nullable = false)
|
||||||
|
@Min(value = 1, message = "Amount must be at least 1")
|
||||||
|
private Integer amount;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
@MapsId("orderId")
|
||||||
|
@JoinColumn(name = "orderId", referencedColumnName = "id", nullable = false)
|
||||||
|
@OnDelete(action = org.hibernate.annotations.OnDeleteAction.CASCADE)
|
||||||
|
private Order order;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
@MapsId("articleId")
|
||||||
|
@JoinColumn(name = "articleId", referencedColumnName = "id", nullable = false)
|
||||||
|
@OnDelete(action = org.hibernate.annotations.OnDeleteAction.SET_NULL)
|
||||||
|
private Article article;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
@MapsId("articleConfId")
|
||||||
|
@JoinColumn(name = "articleConfId", referencedColumnName = "id")
|
||||||
|
@OnDelete(action = org.hibernate.annotations.OnDeleteAction.SET_NULL)
|
||||||
|
private ArticleConfiguration articleConfig;
|
||||||
|
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@EqualsAndHashCode
|
||||||
|
@Embeddable
|
||||||
|
class OrderItemId implements Serializable {
|
||||||
|
private Long orderId;
|
||||||
|
private Long articleId;
|
||||||
|
private Long articleConfId;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,18 +2,18 @@ package de.htwsaar.webshop.repository.entities;
|
|||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import jakarta.validation.constraints.Max;
|
import jakarta.validation.constraints.Max;
|
||||||
import jakarta.validation.constraints.Positive;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
import jakarta.validation.constraints.PositiveOrZero;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@Entity
|
|
||||||
@Getter
|
|
||||||
@Setter
|
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@Table(name = "Review")
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Entity
|
||||||
|
@Table(name = "Reviews")
|
||||||
public class Review {
|
public class Review {
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
@@ -23,11 +23,11 @@ public class Review {
|
|||||||
@Column(name = "content", nullable = false)
|
@Column(name = "content", nullable = false)
|
||||||
private String content;
|
private String content;
|
||||||
|
|
||||||
@Positive
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
@Column(name = "articleId", nullable = false)
|
@MapsId("articleId")
|
||||||
private Long articleId;
|
private Article article;
|
||||||
|
|
||||||
@Positive
|
@PositiveOrZero
|
||||||
@Max(10)
|
@Max(10)
|
||||||
@Column(name = "rating", nullable = false)
|
@Column(name = "rating", nullable = false)
|
||||||
private Integer rating;
|
private Integer rating;
|
||||||
|
|||||||
20
00-backend/src/main/resources/db/DBv2.sql
Normal file
20
00-backend/src/main/resources/db/DBv2.sql
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
DROP TABLE IF EXISTS OrderItems;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS OrderItems(
|
||||||
|
orderId INTEGER NOT NULL,
|
||||||
|
articleId INTEGER NOT NULL,
|
||||||
|
articleConfId INTEGER NULL,
|
||||||
|
amount INTEGER NOT NULL,
|
||||||
|
|
||||||
|
PRIMARY KEY (orderId, articleId, articleConfId), -- added
|
||||||
|
CONSTRAINT cAmount CHECK (amount > 0),
|
||||||
|
FOREIGN KEY (orderId) REFERENCES Orders(id)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
ON UPDATE CASCADE,
|
||||||
|
FOREIGN KEY (articleId) REFERENCES Articles(id)
|
||||||
|
ON DELETE SET NULL
|
||||||
|
ON UPDATE CASCADE,
|
||||||
|
FOREIGN KEY (articleConfId) REFERENCES ArticleConfigurations(id)
|
||||||
|
ON DELETE SET NULL
|
||||||
|
ON UPDATE CASCADE
|
||||||
|
);
|
||||||
Reference in New Issue
Block a user