diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/GameEntity.java b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/GameEntity.java index 18b817d..fb0f6dc 100644 --- a/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/GameEntity.java +++ b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/GameEntity.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; +<<<<<<< HEAD import javax.persistence.Entity; import javax.persistence.CascadeType; import javax.persistence.Column; @@ -13,6 +14,12 @@ import javax.persistence.Id; import javax.persistence.OneToMany; @Entity +======= + +import javax.persistence.*; +@Entity +@Table(name="games") +>>>>>>> bcd6335175194e1c12cc113060a02e202da0af79 public class GameEntity { @Id diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/UserEntity.java b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/UserEntity.java index 1756803..ececb62 100644 --- a/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/UserEntity.java +++ b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/UserEntity.java @@ -1,12 +1,9 @@ package org.acme.Hibernates.entities; -import javax.persistence.Cacheable; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; +import javax.persistence.*; @Entity +@Table(name="users") public class UserEntity { @Id @GeneratedValue @@ -17,6 +14,13 @@ public class UserEntity { @Column(length = 100) private String password; + @OneToOne(cascade = CascadeType.ALL, mappedBy = "user", orphanRemoval = true) + private UserStatsEntity stats; + + public UserEntity() { + this.stats = new UserStatsEntity(this); + } + // return name as uppercase in the model public String getName() { return name.toUpperCase(); diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/UserStatsEntity.java b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/UserStatsEntity.java new file mode 100644 index 0000000..3fbddd6 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/UserStatsEntity.java @@ -0,0 +1,39 @@ +package org.acme.Hibernates.entities; + +import org.hibernate.annotations.ColumnDefault; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.UUID; + +@Entity +@Table(name="user_stats") +public class UserStatsEntity { + @Id + private Long id; + @MapsId + @OneToOne(fetch = FetchType.LAZY) + @JoinColumn (name = "user_id", referencedColumnName = "id", insertable = false, updatable = false) + private UserEntity user; + @ColumnDefault("0") + private Long nbVictories = 0L; + @ColumnDefault("0") + private Long nbGames = 0L; + @ColumnDefault("0") + private Long highscore = 0L; + @ColumnDefault("0") + private Long nbStrikes = 0L; + @ColumnDefault("0") + private Long nbSpares = 0L; + @ColumnDefault("-1") + private double avgScore = -1; + @ColumnDefault("-1") + private double avgPinsPerRound = -1; + + public UserStatsEntity() { + } + + public UserStatsEntity(UserEntity user) { + this.user = user; + } +} diff --git a/Sources/API/Quarkus/src/main/resources/application.properties b/Sources/API/Quarkus/src/main/resources/application.properties index 7ca530e..2c6dc9a 100644 --- a/Sources/API/Quarkus/src/main/resources/application.properties +++ b/Sources/API/Quarkus/src/main/resources/application.properties @@ -23,3 +23,5 @@ quarkus.hibernate-orm.sql-load-script=import.sql quarkus.hibernate-orm.database.generation = drop-and-create quarkus.smallrye-openapi.path=/swagger +quarkus.swagger-ui.path=/swagger-ui +quarkus.swagger-ui.always-include=true diff --git a/Sources/API/Quarkus/src/main/resources/import.sql b/Sources/API/Quarkus/src/main/resources/import.sql index 605c500..d93e737 100644 --- a/Sources/API/Quarkus/src/main/resources/import.sql +++ b/Sources/API/Quarkus/src/main/resources/import.sql @@ -1,4 +1,4 @@ -INSERT INTO userentity(id, name,password) VALUES (nextval('hibernate_sequence'), 'Emre','Emre'); -INSERT INTO userentity(id, name,password) VALUES (nextval('hibernate_sequence'), 'Arthur','Arthur'); -INSERT INTO userentity(id, name,password) VALUES (nextval('hibernate_sequence'), 'Lucas','Lucas'); -INSERT INTO userentity(id, name,password) VALUES (nextval('hibernate_sequence'), 'Louison','Louison'); +INSERT INTO users(id, name,password) VALUES (nextval('hibernate_sequence'), 'Emre','Emre'); +INSERT INTO users(id, name,password) VALUES (nextval('hibernate_sequence'), 'Arthur','Arthur'); +INSERT INTO users(id, name,password) VALUES (nextval('hibernate_sequence'), 'Lucas','Lucas'); +INSERT INTO users(id, name,password) VALUES (nextval('hibernate_sequence'), 'Louison','Louison');