basic Flashcards
(64 cards)
hvad er JPA (Java Persistence API)?
Et sæt regler (en standard), der beskriver, hvordan Java-objekter skal mappes til database-tabeller og omvendt.
JPA udfører ikke noget selv – den kræver en ORM (som Hibernate) til at gøre arbejdet
Hvad er Rest API?
‘Et stateless interface’
Et REST API lader klienter og servere udveksle data via HTTP med metoder som GET, POST, PUT og DELETE
Hvad er Generics?
bruger en typeparameter (T) i klassen/metoden og erstatter den med en konkret datatype ved brug
One to One relationer
en række i en tabel er knyttet til præcis én række i en anden tabel
CommandLineRunner
Spring Boot-interface, der kører kode én gang ved opstart af applikationen. Bruges ofte i InitData til at indsætte testdata i databasen automatisk.
Kan bruges til opstartslogik, f.eks. konfiguration eller logging.
Hvad er Hibernate?
En konkret implementering af JPA, som gør det muligt at gemme, hente og håndtere data i en database ved at mappe Java-objekter til database-tabeller.
Cirkulære referencer
X refererer til Y, og Y refererer tilbage til X. Dette kan skabe uendelige loops.
Hvordan sikres Data-integritet?
sikres ved constraints
Hvad er et Functional interface?
Et interface med et enkelt abstrakt metode (kan have flere default- eller static-metoder)
Hvad gør @JsonBackReference?
Forhindrer uendelige loops i JSON-serialisering, når to objekter refererer til hinanden. Brug på “forældre”-siden af relationen
Hvad står JSON for, og hvad bruges det til?
‘JavaScript Object Notation’
Et letvægtigt dataformat, der bruges til at udveksle data mellem systemer.
Bruges ofte i API’er og webapplikationer til at sende og modtage data.
Hvilke to hovedstrukturer er JSON baseret på?
- Objekter – en samling af navn/værdi-par
- Arrays – en ordnet liste af værdier
RestTemplate
Det er en klasse, der bruges til at lave HTTP-anmodninger (GET, POST, PUT, DELETE) til eksterne API’er.
Hvornår bruger man create-drop/ update?
Update = når man ikke vil miste sine data
Create drop = når data skal resettes hver gang applikationen starter
Hvad må man ikke når man skal navngive endpoints?
Ingen brug af verber(udsagnsord), dvs ingen “getX” “postX”…
mappedBy betyder:
THE MOTHER (forældren)
“Jeg er den passive part – kig på ‘region’ i ‘Kommune’ for at finde relationen.
Den side, der har @OneToMany, har @MappedBy, fordi den ikke ejer relationen.
Hvad tager .forEach() som parameter i Java?
.forEach() tager en lambda-udtryk eller en funktion (Consumer) som parameter, der definerer, hvad der skal gøres med hvert element i en samling.
Hvad er Optional i Java, og hvornår bruges det?
en container, der kan indeholde en værdi eller være tom.
Bruges til at undgå NullPointerException, især når en metode kan returnere null, f.eks. ved databaseopslag som findById(kode)
hvad er: var obj =
betyder, at Java automatisk bestemmer typen af obj baseret på den værdi, du tildeler den.
Hvad er forskellen mellem abstract class og interface?
abstract class → Kan have både implementeret og ikke-implementeret kode.
interface → Kan kun have metode-signaturer (før Java 8), men kan have default/statisk metoder efter Java 8.
Hvad er forskellen på @Controller og @RestController?
@Controller → Returnerer en HTML-side via Thymeleaf.
@RestController → Returnerer JSON-data (REST API).
Hvornår bruges @PathVariable?
Når en værdi er en del af URL’en.
Bruges til at hente dynamiske værdier fra stien.
GET /brugere/5 → “Bruger ID: 5”
Hvornår bruges @RequestParam?
Når en værdi sendes som en forespørgselsparameter i URL’en.
Bruges typisk til valgfri parametre eller filtrering.
GET /søg?navn=Zuhur → “Søger efter: Zuhur”
Hvad er @Transactional, og hvorfor bruges det?
Bruges i Spring Boot til at sikre, at databaseoperationer er atomare.
Hvis en fejl opstår, rulles transaktionen tilbage.