Test H2-DB löscht nicht die IDs

vanBraQ

Mitglied
Hi Leute,wir lernen im Unterricht derzeit Spring unter anderem auch Spring-Data.
Natürlich möchte ich meinen Code auch testen.
Im speziellen geht es hier um die Überprüfung ob die Repositorys richtig funktionieren.
Hier mal der Code eines Repository:

Java:
package at.fdisk.domain;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import at.fdisk.util.EnsureService;

@Entity
@Table(name = "ausbildung")
public class Ausbildung extends BasePersistable {

	private static final long serialVersionUID = 4601413807692718572L;
	
	@Size(max = 30)
	@NotNull
	@Column(name = "bezeichnung", nullable = false, length = 30)
	private String bezeichnung;
	
	@Size(max = 3)
	@NotNull
	@Column(name = "kurzbezeichnung", nullable = false, length = 3)
	private String kurzBezeichnung;
	
	@ManyToOne
	@Transient
	private Feuerwehr ort;
	
	@Temporal(TemporalType.DATE)
	@NotNull
	@Column(name = "startdatum", nullable = false)
	private Date startdatum;
	
	@Temporal(TemporalType.DATE)
	@NotNull
	@Column(name = "endatum", nullable = false)
	private Date enddatum;

	public Ausbildung(String bezeichnung, String kurz_bezeichnung,
			Feuerwehr ort, Date startdatum, Date enddatum) {
		super();
		EnsureService.notEmpty("bezeichnung", bezeichnung);
		EnsureService.notEmpty("kurz_bezeichnung", kurz_bezeichnung);
		EnsureService.notNull("ort", ort);
		EnsureService.notNull("startdatum", startdatum);
		EnsureService.notNull("enddatum", enddatum);
		this.bezeichnung = bezeichnung;
		this.kurzBezeichnung = kurz_bezeichnung;
		this.ort = ort;
		this.startdatum = startdatum;
		this.enddatum = enddatum;
	}

	public Ausbildung() {
		// required for JPA
	}

	public String getBezeichnung() {
		return bezeichnung;
	}

	public void setBezeichnung(String bezeichnung) {
		this.bezeichnung = bezeichnung;
	}

	public String getKurz_bezeichnung() {
		return kurzBezeichnung;
	}

	public void setKurz_bezeichnung(String kurz_bezeichnung) {
		this.kurzBezeichnung = kurz_bezeichnung;
	}

	public Feuerwehr getOrt() {
		return ort;
	}

	public void setOrt(Feuerwehr ort) {
		this.ort = ort;
	}

	public Date getStartdatum() {
		return startdatum;
	}

	public void setStartdatum(Date startdatum) {
		this.startdatum = startdatum;
	}

	public Date getEnddatum() {
		return enddatum;
	}

	public void setEnddatum(Date enddatum) {
		this.enddatum = enddatum;
	}

	
}

Java:
package at.fdisk.repository;

import java.util.Date;
import java.util.List;

import at.fdisk.domain.Ausbildung;

public interface AusbildungRepositoryCustom {
    List<Ausbildung> findByBezeichnung(String bezeichnung);
    List<Ausbildung> findByKurzbezeichnung(String kurzbezeichnung);
    List<Ausbildung> findByStartdatum(Date startdatum);
    List<Ausbildung> findByEnddatum(Date enddatum);
}

Java:
package at.fdisk.repository;

import java.util.List;
import org.springframework.data.repository.CrudRepository;

import at.fdisk.domain.Ausbildung;

public interface AusbildungRepository extends AusbildungRepositoryCustom,
		CrudRepository<Ausbildung, Long> {

	List<Ausbildung> findAll();

	Ausbildung findById(Long id);
}

Java:
package at.fdisk.repository.impl;

import java.util.Date;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.mysema.query.jpa.impl.JPAQuery;

import at.fdisk.domain.Ausbildung;
import at.fdisk.domain.QAusbildung;
import at.fdisk.repository.AusbildungRepositoryCustom;

public class AusbildungRepositoryImpl implements AusbildungRepositoryCustom {

	@PersistenceContext
	EntityManager entityManager;

	@Override
	public List<Ausbildung> findByBezeichnung(String bezeichnung) {
		JPAQuery query = new JPAQuery(entityManager);
		QAusbildung ausbildung = QAusbildung.ausbildung;
		query.from(ausbildung).where(ausbildung.bezeichnung.eq(bezeichnung));
		return query.list(ausbildung);
	}

	@Override
	public List<Ausbildung> findByKurzbezeichnung(String kurzbezeichnung) {
		JPAQuery query = new JPAQuery(entityManager);
		QAusbildung ausbildung = QAusbildung.ausbildung;
		query.from(ausbildung).where(
				ausbildung.kurzBezeichnung.eq(kurzbezeichnung));
		return query.list(ausbildung);
	}

	@Override
	public List<Ausbildung> findByStartdatum(Date startdatum) {
		JPAQuery query = new JPAQuery(entityManager);
		QAusbildung ausbildung = QAusbildung.ausbildung;
		query.from(ausbildung).where(ausbildung.startdatum.eq(startdatum))
				.orderBy(ausbildung.bezeichnung.asc());
		return null;
	}

	@Override
	public List<Ausbildung> findByEnddatum(Date enddatum) {
		JPAQuery query = new JPAQuery(entityManager);
		QAusbildung ausbildung = QAusbildung.ausbildung;
		query.from(ausbildung).where(ausbildung.enddatum.eq(enddatum))
				.orderBy(ausbildung.bezeichnung.asc());
		return null;
	}

}

Nun zu meinem Problem:
Ich teste ob die Funktion findById, welche ja von Spring automatisch implementiert wird, auch wirklich funktioniert. Das Problem dabei ist: Jedes mal wenn ich den Test durchlaufen lasse, werden die Datensätze in eine H2 Datenbank geladen welche nur den Testzwecken dient. Durch ein .deleteAll() lösche ich jedesmal vor dem Test alles aus dieser DB heraus. Doch irgendwie funktionier dies nicht und es bleibt jedesmal nur die ID gespeichert (Habe dies durch Debugging schon herausgefunden). Woran könnte das liegen ?

Hier noch der Code von meinem Test:

Java:
package at.fdisk.repository;

import java.util.Date;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.util.Assert;

import at.fdisk.domain.Ausbildung;
import at.fdisk.domain.Feuerwehr;
import at.fdisk.repository.AusbildungRepository;
import at.fdisk.repository.RepositoryTestConfiguration;

@ContextConfiguration(classes = RepositoryTestConfiguration.class)
public class AusbildungsRepositoryTest extends AbstractJUnit4SpringContextTests {

	@PersistenceContext
	EntityManager entityManager;

	@Autowired
	AusbildungRepository ausbildungRepository;

	@Before
	public void setup() {
		ausbildungRepository.deleteAll();
	}

	@Test
	public void testFindAll() {
		ausbildungRepository.save(new Ausbildung("TEST1", "T1",
				new Feuerwehr(), new Date(), new Date()));
		ausbildungRepository.save(new Ausbildung("TEST2", "T2",
				new Feuerwehr(), new Date(), new Date()));
		ausbildungRepository.save(new Ausbildung("TEST3", "T3",
				new Feuerwehr(), new Date(), new Date()));
		List<Ausbildung> ausbildung = ausbildungRepository.findAll();

		Assert.notNull(ausbildung);
		Assert.isTrue(ausbildung.size() == 3);
	}

	@Test
	public void testFindById() {
		AbstractApplicationContext context = new AnnotationConfigApplicationContext(
				RepositoryTestConfiguration.class);
		AusbildungRepository repository = context
				.getBean(AusbildungRepository.class);
		repository.save(new Ausbildung("TEST1", "T1",
				new Feuerwehr(), new Date(), new Date()));
		repository.save(new Ausbildung("TEST2", "T2",
				new Feuerwehr(), new Date(), new Date()));
		repository.save(new Ausbildung("TEST3", "T3",
				new Feuerwehr(), new Date(), new Date()));

		Ausbildung ausbildung = repository.findById((long) 1);
		Assert.notNull(ausbildung);
		Assert.isTrue(ausbildung.getBezeichnung().equals("TEST1"));

		context.close();
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
-MacNuke- Hibernate löscht jeden Datensatz einzeln? Datenbankprogrammierung 12
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
M Meine Datenbank lässt sich mit meiner Methode nicht ändern Datenbankprogrammierung 1
P Reicht finally nicht um DB connections zu schließen in (altem) Java? Datenbankprogrammierung 4
D JOIN COLUMN wird nicht genommen Datenbankprogrammierung 2
Maxim6394 JPA / EclipseLink - n:m Beziehung wird nicht aktualisiert Datenbankprogrammierung 0
J SQLite Abfrage fehlerhaft - komme nicht weiter - please help. Datenbankprogrammierung 3
D Ich möchte dass ich nachdem man den Kommentar geschrieben hat den Kommentar in den Tabelle Bestellübersicht geschbeichert wird klappt nicht bei mir Datenbankprogrammierung 2
M Datenbank Zugraff nach Umwandlung in .jar-Datei nicht mehr möglich Datenbankprogrammierung 4
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
A Java DB Server lässt sich nicht starten Datenbankprogrammierung 3
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
T Datenzeilen werden nicht gelöscht Datenbankprogrammierung 6
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
S Das printen der Ausgabe des Oracle-SQL-Statements in der Java-Eclipse-Konsole funktioniert nicht Datenbankprogrammierung 6
S Datenbankprogrammierung in Java unter NetBeans 12 funktioniert nicht! Datenbankprogrammierung 1
pkm PostgreSQL Kann mit mybatis einen Parameter für eine postgreSQL-Abfrage nicht übergeben. Datenbankprogrammierung 5
Davee SQLite SQLite Datenbank lässt sich nicht auf anderen PCs öffnen Datenbankprogrammierung 8
Watsoon Treiber wird in Intellij nicht geladen Datenbankprogrammierung 2
Kirby.exe PreparedStatement wird nicht ausgeführt Datenbankprogrammierung 5
rafi072001 MicroServices EurekaClient findet anderern EurekaClient nicht Datenbankprogrammierung 1
D JPA gleiche methode funktioniert an einer Stelle, an der anderen nicht Datenbankprogrammierung 3
Z Datenbank Choicebox wird nicht befüllt Datenbankprogrammierung 15
pkm PostgreSQL Auf eine Spalte kann aus einem Teil der SQL-Aussage nicht zugegriffen werden Datenbankprogrammierung 3
G MySQL JDBC Metadaten auslesen aus .accdb -> Primärschlüssel manchmal erkannt manchmal nicht Datenbankprogrammierung 3
C MySQL SQL Statement wir nicht ausgeführt Datenbankprogrammierung 11
N Sqlite DB mit Java wird auf Linuxsystem nicht gefunden Datenbankprogrammierung 9
pkm Tomcat Classloader findet bei JPA-Persistierung die Persistence Unit nicht. Datenbankprogrammierung 11
F Tabellen automatisch erstellen wenn sie nicht existieren Datenbankprogrammierung 6
J Netbeans 11 und Eclipse JPA 2.5 Entity wird nicht gefunden Datenbankprogrammierung 4
J Java fügt Datensätze ein aber diese werden nicht richtig abgefragt Datenbankprogrammierung 3
J Firebase KeepSynced funktioniert nicht Datenbankprogrammierung 0
OnDemand MySQL Trigger löst nicht aus bei Hibernate Update Datenbankprogrammierung 12
R HSQLDB ResultSet update aktualisiert DB, aber nicht das ResultSet Datenbankprogrammierung 2
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
B MySQL Data Tools Plattform - "Database Connections" findet den Treiber nicht Datenbankprogrammierung 1
OnDemand One to Many bekomm es nicht hin Datenbankprogrammierung 7
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
R jdbc-Zugriff Nicht erlaubt ? Datenbankprogrammierung 16
F H2 ObjectOptimisticLockingFailureException wird nicht geworfen Datenbankprogrammierung 0
R findet Derby.DB nicht !? Datenbankprogrammierung 5
I Datenbankverbindung Oracle DB klappt nicht - getConnection returned null Datenbankprogrammierung 8
X SQLite SQLite Programm beendet/führt nicht weiter aus Datenbankprogrammierung 12
P LDAP: Daten eintragen funktioniert nicht Datenbankprogrammierung 7
Ananaskirsche Datenbanktreiber kann nicht geladen werden Datenbankprogrammierung 2
S sun.jdbc.odbc.JdbcOdbcDriver wird nicht gefunden Datenbankprogrammierung 2
U Kann die Tabellen nicht finden Datenbankprogrammierung 0
M Java Datenbankanbindung funktioniert nicht Datenbankprogrammierung 4
C MYSQL kann wert nicht eintragen Datenbankprogrammierung 3
J Verbindung zu Derby Datenbank funktioniert nicht Datenbankprogrammierung 14
S MySQL MySQL will einfach nicht, bitte um Rat Datenbankprogrammierung 4
E Warum funktioniert das Erzeugen einer View nicht? Datenbankprogrammierung 1
E Warum kann mein SQL-File nicht in DB2 ausgeführt werden? Datenbankprogrammierung 1
M JDBC Tabellen mit Boolean Spalten können nicht erstellt werden. DB Updaten - wie? Datenbankprogrammierung 6
T Tabellen von nicht mehr vorhandenen Entities werden generiert Datenbankprogrammierung 0
OnDemand Update table SET will nicht Datenbankprogrammierung 9
M DB-Zugriff funktioniert nach JAR-Erstellung nicht mehr Datenbankprogrammierung 3
J SQL-Statement Meine insert befehle funktionieren nicht und ich weiß nicht wo der fehler liegt Datenbankprogrammierung 5
S MySQL Speicher wird nicht freigegeben bei Datenbankabfragen Datenbankprogrammierung 6
L SQL Statement mit Switch-Case funktioniert nicht Datenbankprogrammierung 6
D MySQL Eingabe wird nicht übernommen... Datenbankprogrammierung 11
H Derby: SYSCS_UTIL.SYSCS_EXPORT_QUERY mit String Abfrage in wehre-Klausel nicht möglich Datenbankprogrammierung 3
F sun.jdbc.odbc.jdbcodbcdriver wird nicht gefuden Datenbankprogrammierung 3
L JTable-DB: Letzter wert wird nicht angezeigt. Datenbankprogrammierung 0
I Datenbank Verbindung geht nicht Datenbankprogrammierung 2
L MySQL App/Java Zugriff auf Mysql-DB funktioniert nicht Datenbankprogrammierung 1
I Kann nicht mit iiS DB Verbinden Datenbankprogrammierung 1
S Verbindungsaufbau zu MySql Datenbank nicht möglich Datenbankprogrammierung 3
D [xBaseJ] Datei kann nicht geöffnet werden Datenbankprogrammierung 2
N JDBC: rollback() bei Exception geht nicht!? Datenbankprogrammierung 1
K Datenbank wird bei Programmstart als .jar nicht mehr befüllt Datenbankprogrammierung 12
R Datenbankverbindung kann nicht hergestellt werden Datenbankprogrammierung 8
M Oracle Bekomme fertiges Tool nicht ans Laufen Datenbankprogrammierung 3
P PostgreSQL Java-Anwendung zählt rollbacks nicht Datenbankprogrammierung 0
M Finde einen eifachen Befehl nicht Datenbankprogrammierung 4
T MySQL Datetime wird auf Sekunden gerundet, soll es aber nicht Datenbankprogrammierung 2
P MySQL jpmdbc: Kann lesen aber nicht schreiben? Datenbankprogrammierung 3
1 MySQL Verbindung mit localhost als IP funktioniert, aber mit normaler IP nicht Datenbankprogrammierung 2
M Derby/JavaDB Neu geschriebener Eintrag per UPDATE lässt sich nicht unmittelbar abrufen Datenbankprogrammierung 2
J Datenbankeintag eines Warenkorbes funktioniert nicht Datenbankprogrammierung 4
AMStyles Kann Wert nicht speichern (MAX VALUE) Datenbankprogrammierung 9
M MySQL INSERT will einfach nicht funktionieren Datenbankprogrammierung 9
A Nach Export mysql Verbindung zur Datenbank nicht möglich, was tun? Datenbankprogrammierung 7
T SQL-Statement case when then klappt nicht Datenbankprogrammierung 4
B DB2 Hibernate findet Datenbank nicht Datenbankprogrammierung 18
J JDBC in Library|"Treiber konnte nicht geladen werden"" Datenbankprogrammierung 2
D MySQL Treiber konnte nicht geladen werden Datenbankprogrammierung 3
P JSF + H2 + TomEE + Hibernate/JPA Datenbank wird nicht angelegt Datenbankprogrammierung 3
C Db4o speichert verschachtelte Objekte nicht vollständig Datenbankprogrammierung 8
P SQL-Statement "Top 1" oder "limit" funktioniert nicht Datenbankprogrammierung 12
C Programm wird nach DB-Eintrag nicht weitergeführt Datenbankprogrammierung 5
R sqlite UPDATE wirkt nicht aus Java Datenbankprogrammierung 7
crashfinger jdbc-connection mit jre7 funktioniert nicht Datenbankprogrammierung 5
R PostgreSQL Tabellen hinzufügen, falls nicht vorhanden Datenbankprogrammierung 3
T f:event preRenderView Trigger wird nicht ausgeführt Datenbankprogrammierung 4
P Oracle Hibernate - Oracle-VarChar-Index wird nicht genutzt Datenbankprogrammierung 3
D Derby Datenbank bei Export zu JAR-Datei nicht möglich Datenbankprogrammierung 8
A MySQL Datensatz wird nicht richtig gelöscht Datenbankprogrammierung 6
X3TitanCore mysqldump funktioniert nicht Datenbankprogrammierung 8

Ähnliche Java Themen

Neue Themen


Oben