Adding UserStatsEntity and OneToOne Lazy relationship

Arthur_API-Users
Arthur VALIN 2 years ago
parent 887f507cba
commit 65804fb524

@ -4,11 +4,9 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.UUID;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.*;
@Entity
@Table(name="games")
public class GameEntity {
@Id

@ -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();

@ -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;
}
}

@ -23,3 +23,5 @@ quarkus.oidc.application-type=service
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

@ -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');

Loading…
Cancel
Save