mirror of
https://github.com/AJMicke/KickerELO.git
synced 2026-03-11 13:31:02 +01:00
Initial commit
This commit is contained in:
41
.gitignore
vendored
Normal file
41
.gitignore
vendored
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
target/
|
||||||
|
!.mvn/wrapper/maven-wrapper.jar
|
||||||
|
!**/src/main/**/target/
|
||||||
|
!**/src/test/**/target/
|
||||||
|
|
||||||
|
### IntelliJ IDEA ###
|
||||||
|
.idea/modules.xml
|
||||||
|
.idea/jarRepositories.xml
|
||||||
|
.idea/compiler.xml
|
||||||
|
.idea/libraries/
|
||||||
|
*.iws
|
||||||
|
*.iml
|
||||||
|
*.ipr
|
||||||
|
|
||||||
|
### Eclipse ###
|
||||||
|
.apt_generated
|
||||||
|
.classpath
|
||||||
|
.factorypath
|
||||||
|
.project
|
||||||
|
.settings
|
||||||
|
.springBeans
|
||||||
|
.sts4-cache
|
||||||
|
|
||||||
|
### NetBeans ###
|
||||||
|
/nbproject/private/
|
||||||
|
/nbbuild/
|
||||||
|
/dist/
|
||||||
|
/nbdist/
|
||||||
|
/.nb-gradle/
|
||||||
|
build/
|
||||||
|
!**/src/main/**/build/
|
||||||
|
!**/src/test/**/build/
|
||||||
|
|
||||||
|
### VS Code ###
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
### Mac OS ###
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
### Vaadin ###
|
||||||
|
/src/main/frontend/generated/
|
||||||
115
pom.xml
Normal file
115
pom.xml
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>org.kickerelo</groupId>
|
||||||
|
<artifactId>KickerELO</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-parent</artifactId>
|
||||||
|
<version>3.4.2</version>
|
||||||
|
<relativePath/> <!-- lookup parent from repository -->
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>23</maven.compiler.source>
|
||||||
|
<maven.compiler.target>23</maven.compiler.target>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<vaadin.version>24.6.4</vaadin.version>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.vaadin</groupId>
|
||||||
|
<artifactId>vaadin-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- <dependency>
|
||||||
|
<groupId>org.apache.derby</groupId>
|
||||||
|
<artifactId>derbyclient</artifactId>
|
||||||
|
<version>10.13.1.1</version>
|
||||||
|
</dependency>-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.h2database</groupId>
|
||||||
|
<artifactId>h2</artifactId>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-tomcat</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
<dependencyManagement>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.vaadin</groupId>
|
||||||
|
<artifactId>vaadin-bom</artifactId>
|
||||||
|
<version>${vaadin.version}</version>
|
||||||
|
<type>pom</type>
|
||||||
|
<scope>import</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</dependencyManagement>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
<profiles>
|
||||||
|
<profile>
|
||||||
|
<id>production</id>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.vaadin</groupId>
|
||||||
|
<artifactId>vaadin-core</artifactId>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>com.vaadin</groupId>
|
||||||
|
<artifactId>vaadin-dev</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>com.vaadin</groupId>
|
||||||
|
<artifactId>vaadin-maven-plugin</artifactId>
|
||||||
|
<version>${vaadin.version}</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>frontend</id>
|
||||||
|
<phase>compile</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>prepare-frontend</goal>
|
||||||
|
<goal>build-frontend</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
|
||||||
|
</project>
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package org.kickerelo.kickerelo;
|
||||||
|
|
||||||
|
import com.vaadin.flow.component.page.AppShellConfigurator;
|
||||||
|
import com.vaadin.flow.theme.Theme;
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.domain.EntityScan;
|
||||||
|
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
||||||
|
|
||||||
|
|
||||||
|
@SpringBootApplication
|
||||||
|
@EntityScan(basePackages = "org.kickerelo.kickerelo.data")
|
||||||
|
@EnableJpaRepositories
|
||||||
|
@Theme("my-theme")
|
||||||
|
public class KickerEloApplication implements AppShellConfigurator {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SpringApplication.run(KickerEloApplication.class, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
73
src/main/java/org/kickerelo/kickerelo/KickerEloService.java
Normal file
73
src/main/java/org/kickerelo/kickerelo/KickerEloService.java
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
package org.kickerelo.kickerelo;
|
||||||
|
|
||||||
|
import org.kickerelo.kickerelo.data.Ergebnis1vs1;
|
||||||
|
import org.kickerelo.kickerelo.data.Ergebnis2vs2;
|
||||||
|
import org.kickerelo.kickerelo.data.Spieler;
|
||||||
|
import org.kickerelo.kickerelo.repository.Ergebnis1vs1Repository;
|
||||||
|
import org.kickerelo.kickerelo.repository.Ergebnis2vs2Repository;
|
||||||
|
import org.kickerelo.kickerelo.repository.SpielerRepository;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class KickerEloService {
|
||||||
|
@Autowired
|
||||||
|
private Ergebnis1vs1Repository ergebnis1vs1Repository;
|
||||||
|
@Autowired
|
||||||
|
private Ergebnis2vs2Repository ergebnis2vs2Repository;
|
||||||
|
@Autowired
|
||||||
|
private SpielerRepository spielerRepository;
|
||||||
|
|
||||||
|
public List<String> getSpielerNamen() {
|
||||||
|
return spielerRepository.findAll().stream().map(Spieler::getName).toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void enterResult1vs1(String gewinnerName, String verliererName,
|
||||||
|
short toreVerlierer) {
|
||||||
|
|
||||||
|
Spieler gewinner = spielerRepository.findByName(gewinnerName)
|
||||||
|
.orElseThrow(() -> new NoSuchPlayerException(gewinnerName));
|
||||||
|
|
||||||
|
Spieler verlierer = spielerRepository.findByName(verliererName)
|
||||||
|
.orElseThrow(() -> new NoSuchPlayerException(verliererName));
|
||||||
|
|
||||||
|
|
||||||
|
Ergebnis1vs1 ergebnis = new Ergebnis1vs1(gewinner, verlierer, toreVerlierer);
|
||||||
|
|
||||||
|
ergebnis1vs1Repository.save(ergebnis);
|
||||||
|
|
||||||
|
// Compute the new ELO and update the Spieler entities
|
||||||
|
}
|
||||||
|
|
||||||
|
public void enterResult2vs2(String gewinnerNameVorn, String gewinnerNameHinten,
|
||||||
|
String verliererNameVorn, String verliererNameHinten,
|
||||||
|
short toreVerlierer) {
|
||||||
|
|
||||||
|
Spieler gewinnerVorn = spielerRepository.findByName(gewinnerNameVorn)
|
||||||
|
.orElseThrow(() -> new NoSuchPlayerException(gewinnerNameVorn));
|
||||||
|
|
||||||
|
Spieler gewinnerHinten = spielerRepository.findByName(gewinnerNameHinten)
|
||||||
|
.orElseThrow(() -> new NoSuchPlayerException(gewinnerNameHinten));
|
||||||
|
|
||||||
|
Spieler verliererVorn = spielerRepository.findByName(verliererNameVorn)
|
||||||
|
.orElseThrow(() -> new NoSuchPlayerException(verliererNameVorn));
|
||||||
|
|
||||||
|
Spieler verliererHinten = spielerRepository.findByName(verliererNameHinten)
|
||||||
|
.orElseThrow(() -> new NoSuchPlayerException(verliererNameHinten));
|
||||||
|
|
||||||
|
Ergebnis2vs2 ergebnis = new Ergebnis2vs2(gewinnerVorn, gewinnerHinten, verliererVorn, verliererHinten, toreVerlierer);
|
||||||
|
|
||||||
|
ergebnis2vs2Repository.save(ergebnis);
|
||||||
|
|
||||||
|
// Compute the new ELO, update the Spieler entitities
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addSpieler(String name) {
|
||||||
|
Spieler spieler = new Spieler();
|
||||||
|
spieler.setName(name);
|
||||||
|
spieler.setElo(1500);
|
||||||
|
spielerRepository.save(spieler);
|
||||||
|
}
|
||||||
|
}
|
||||||
70
src/main/java/org/kickerelo/kickerelo/MainView.java
Normal file
70
src/main/java/org/kickerelo/kickerelo/MainView.java
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
package org.kickerelo.kickerelo;
|
||||||
|
|
||||||
|
import com.vaadin.flow.component.button.Button;
|
||||||
|
import com.vaadin.flow.component.button.ButtonVariant;
|
||||||
|
import com.vaadin.flow.component.combobox.ComboBox;
|
||||||
|
import com.vaadin.flow.component.notification.Notification;
|
||||||
|
import com.vaadin.flow.component.notification.NotificationVariant;
|
||||||
|
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
|
||||||
|
import com.vaadin.flow.component.textfield.IntegerField;
|
||||||
|
import com.vaadin.flow.component.textfield.TextField;
|
||||||
|
import com.vaadin.flow.router.Route;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A sample Vaadin view class.
|
||||||
|
* <p>
|
||||||
|
* To implement a Vaadin view just extend any Vaadin component and use @Route
|
||||||
|
* annotation to announce it in a URL as a Spring managed bean.
|
||||||
|
* <p>
|
||||||
|
* A new instance of this class is created for every new user and every browser
|
||||||
|
* tab/window.
|
||||||
|
* <p>
|
||||||
|
* The main view contains a text field for getting the user name and a button
|
||||||
|
* that shows a greeting message in a notification.
|
||||||
|
*/
|
||||||
|
@Route
|
||||||
|
public class MainView extends VerticalLayout {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Construct a new Vaadin view.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public MainView(KickerEloService eloService) {
|
||||||
|
|
||||||
|
|
||||||
|
TextField spielername = new TextField("Spielername");
|
||||||
|
spielername.addClassName("bordered");
|
||||||
|
|
||||||
|
// Button click listeners can be defined as lambda expressions
|
||||||
|
Button button = new Button("Spieler hinzufügen", e -> {
|
||||||
|
eloService.addSpieler(spielername.getValue());
|
||||||
|
Notification.show("Spieler gespeichert").addThemeVariants(NotificationVariant.LUMO_SUCCESS);
|
||||||
|
});
|
||||||
|
|
||||||
|
button.addThemeVariants(ButtonVariant.LUMO_PRIMARY);
|
||||||
|
|
||||||
|
ComboBox<String> winnerSelect = new ComboBox<>("Gewinner");
|
||||||
|
winnerSelect.setItems(eloService.getSpielerNamen());
|
||||||
|
winnerSelect.setPlaceholder("Spieler auswählen");
|
||||||
|
|
||||||
|
ComboBox<String> loserSelect = new ComboBox<>("Verlierer");
|
||||||
|
loserSelect.setItems(eloService.getSpielerNamen());
|
||||||
|
loserSelect.setPlaceholder("Spieler auswählen");
|
||||||
|
|
||||||
|
IntegerField loserGoals = new IntegerField("Tore des Verlierers");
|
||||||
|
loserGoals.setMin(0);
|
||||||
|
loserGoals.setMax(9);
|
||||||
|
loserGoals.setValue(0);
|
||||||
|
loserGoals.setStepButtonsVisible(true);
|
||||||
|
|
||||||
|
Button saveButton = new Button("Speichern", e ->
|
||||||
|
eloService.enterResult1vs1(winnerSelect.getValue(), loserSelect.getValue(), loserGoals.getValue().shortValue()));
|
||||||
|
|
||||||
|
|
||||||
|
// Use custom CSS classes to apply styling. This is defined in
|
||||||
|
// styles.css.
|
||||||
|
addClassName("centered-content");
|
||||||
|
|
||||||
|
add(spielername, button, winnerSelect, loserSelect, loserGoals, saveButton);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package org.kickerelo.kickerelo;
|
||||||
|
|
||||||
|
public class NoSuchPlayerException extends RuntimeException {
|
||||||
|
public NoSuchPlayerException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
75
src/main/java/org/kickerelo/kickerelo/data/Ergebnis1vs1.java
Normal file
75
src/main/java/org/kickerelo/kickerelo/data/Ergebnis1vs1.java
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
package org.kickerelo.kickerelo.data;
|
||||||
|
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
public class Ergebnis1vs1 {
|
||||||
|
@Id
|
||||||
|
@Column(name = "ID")
|
||||||
|
private long id;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JoinColumn(name = "GEWINNER")
|
||||||
|
private Spieler gewinner;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JoinColumn(name = "VERLIERER")
|
||||||
|
private Spieler verlierer;
|
||||||
|
|
||||||
|
@Column(name = "TORE_VERLIERER")
|
||||||
|
private short toreVerlierer;
|
||||||
|
|
||||||
|
@Column(name = "ZEITPUNKT")
|
||||||
|
private LocalDateTime timestamp;
|
||||||
|
|
||||||
|
public Ergebnis1vs1() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Ergebnis1vs1(Spieler gewinner, Spieler verlierer, short toreVerlierer) {
|
||||||
|
this.gewinner = gewinner;
|
||||||
|
this.verlierer = verlierer;
|
||||||
|
this.toreVerlierer = toreVerlierer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Spieler getVerlierer() {
|
||||||
|
return verlierer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVerlierer(Spieler verlierer) {
|
||||||
|
this.verlierer = verlierer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Spieler getGewinner() {
|
||||||
|
return gewinner;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGewinner(Spieler gewinner) {
|
||||||
|
this.gewinner = gewinner;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getToreVerlierer() {
|
||||||
|
return toreVerlierer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setToreVerlierer(short toreVerlierer) {
|
||||||
|
this.toreVerlierer = toreVerlierer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDateTime getTimestamp() {
|
||||||
|
return timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTimestamp(LocalDateTime timestamp) {
|
||||||
|
this.timestamp = timestamp;
|
||||||
|
}
|
||||||
|
}
|
||||||
97
src/main/java/org/kickerelo/kickerelo/data/Ergebnis2vs2.java
Normal file
97
src/main/java/org/kickerelo/kickerelo/data/Ergebnis2vs2.java
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
package org.kickerelo.kickerelo.data;
|
||||||
|
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
public class Ergebnis2vs2 {
|
||||||
|
@Id
|
||||||
|
@Column(name = "ID")
|
||||||
|
private long id;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JoinColumn(name = "GEWINNER_VORN")
|
||||||
|
private Spieler gewinnerVorn;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JoinColumn(name = "GEWINNER_HINTEN")
|
||||||
|
private Spieler gewinnerHinten;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JoinColumn(name = "VERLIERER_VORN")
|
||||||
|
private Spieler verliererVorn;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
@JoinColumn(name = "VERLIERER_HINTEN")
|
||||||
|
private Spieler verliererHinten;
|
||||||
|
|
||||||
|
@Column(name = "TORE_VERLIERER")
|
||||||
|
private short toreVerlierer;
|
||||||
|
|
||||||
|
@Column(name = "ZEITPUNKT")
|
||||||
|
private LocalDateTime timestamp;
|
||||||
|
|
||||||
|
public Ergebnis2vs2() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Ergebnis2vs2(Spieler gewinnerVorn, Spieler gewinnerHinten, Spieler verliererVorn, Spieler verliererHinten, short toreVerlierer) {
|
||||||
|
this.gewinnerVorn = gewinnerVorn;
|
||||||
|
this.gewinnerHinten = gewinnerHinten;
|
||||||
|
this.verliererVorn = verliererVorn;
|
||||||
|
this.verliererHinten = verliererHinten;
|
||||||
|
this.toreVerlierer = toreVerlierer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getToreVerlierer() {
|
||||||
|
return toreVerlierer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setToreVerlierer(short toreVerlierer) {
|
||||||
|
this.toreVerlierer = toreVerlierer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDateTime getTimestamp() {
|
||||||
|
return timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTimestamp(LocalDateTime timestamp) {
|
||||||
|
this.timestamp = timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Spieler getVerliererHinten() {
|
||||||
|
return verliererHinten;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVerliererHinten(Spieler verliererHinten) {
|
||||||
|
this.verliererHinten = verliererHinten;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Spieler getVerliererVorn() {
|
||||||
|
return verliererVorn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVerliererVorn(Spieler verliererVorn) {
|
||||||
|
this.verliererVorn = verliererVorn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Spieler getGewinnerHinten() {
|
||||||
|
return gewinnerHinten;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGewinnerHinten(Spieler gewinnerHinten) {
|
||||||
|
this.gewinnerHinten = gewinnerHinten;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Spieler getGewinnerVorn() {
|
||||||
|
return gewinnerVorn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGewinnerVorn(Spieler gewinnerVorn) {
|
||||||
|
this.gewinnerVorn = gewinnerVorn;
|
||||||
|
}
|
||||||
|
}
|
||||||
45
src/main/java/org/kickerelo/kickerelo/data/Spieler.java
Normal file
45
src/main/java/org/kickerelo/kickerelo/data/Spieler.java
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
package org.kickerelo.kickerelo.data;
|
||||||
|
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Table(name = "SPIELER")
|
||||||
|
public class Spieler {
|
||||||
|
@Id
|
||||||
|
@Column(name = "ID", unique = true, nullable = false)
|
||||||
|
@GeneratedValue
|
||||||
|
private int id;
|
||||||
|
|
||||||
|
@Column(name = "NAME", nullable = false, unique = true)
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@Column(name = "ELO", nullable = false)
|
||||||
|
private float elo;
|
||||||
|
|
||||||
|
public Spieler() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getElo() {
|
||||||
|
return elo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setElo(float elo) {
|
||||||
|
this.elo = elo;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package org.kickerelo.kickerelo.repository;
|
||||||
|
|
||||||
|
import org.kickerelo.kickerelo.data.Ergebnis1vs1;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface Ergebnis1vs1Repository extends JpaRepository<Ergebnis1vs1, Long> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package org.kickerelo.kickerelo.repository;
|
||||||
|
|
||||||
|
import org.kickerelo.kickerelo.data.Ergebnis2vs2;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface Ergebnis2vs2Repository extends JpaRepository<Ergebnis2vs2, Long> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package org.kickerelo.kickerelo.repository;
|
||||||
|
|
||||||
|
import org.kickerelo.kickerelo.data.Spieler;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface SpielerRepository extends JpaRepository<Spieler, Long> {
|
||||||
|
Optional<Spieler> findByName(String name);
|
||||||
|
}
|
||||||
6
src/main/resources/application.properties
Normal file
6
src/main/resources/application.properties
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
server.port=${PORT:8080}
|
||||||
|
logging.level.org.atmosphere = warn
|
||||||
|
spring.mustache.check-template-location = false
|
||||||
|
|
||||||
|
# Launch the default browser when starting the application in development mode
|
||||||
|
vaadin.launch-browser=true
|
||||||
Reference in New Issue
Block a user