What is wrong with my code?

Hello! I am trying to code along but am not getting the same result. I have been inspecting my code so much I feel a bit blind, so could I perhaps get a second pair of eyes, with maybe a bit more knowledge? I am learning Spring, working with Spring Boot & Databases. It is not much code, three classes so if it's not minded I will just share it here.
5 Replies
JavaBot
JavaBot2mo ago
This post has been reserved for your question.
Hey @De1ora! Please use /close or the Close Post button above when your problem is solved. Please remember to follow the help guidelines. This post will be automatically marked as dormant after 300 minutes of inactivity.
TIP: Narrow down your issue to simple and precise questions to maximize the chance that others will reply in here.
De1ora
De1oraOP2mo ago
package me.FolderAPI.FolderAPI.Folder;

import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Data;

import java.util.UUID;

@Entity
@Data
@AllArgsConstructor
public class Folder { // Klass som representerar en tabell, en model

@Id // För att informera hibernate om att detta ska vara just id:t
private UUID id; // Eftersom det är databaser, vill vi ha en primary key

private String title;
}

package me.FolderAPI.FolderAPI.Folder;

import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Data;

import java.util.UUID;

@Entity
@Data
@AllArgsConstructor
public class Folder { // Klass som representerar en tabell, en model

@Id // För att informera hibernate om att detta ska vara just id:t
private UUID id; // Eftersom det är databaser, vill vi ha en primary key

private String title;
}

package me.FolderAPI.FolderAPI.Folder;

import lombok.RequiredArgsConstructor;
import lombok.ToString;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.net.URI;
import java.util.UUID;

@RestController
@RequestMapping("/folder")
@RequiredArgsConstructor
public class FolderController {

private final FolderRepository folderRepository;

@PostMapping
public ResponseEntity<?> createFolder(@RequestBody CreateFolderDto dto) {
if (dto.title == null || dto.title.isBlank()) {
return ResponseEntity.badRequest().body("Title may not be null or empty");
}

Folder folder = new Folder(UUID.randomUUID(), dto.title);
folderRepository.save(folder);

return ResponseEntity
.created(URI.create("/folder"))
.body(folder);
}

@GetMapping
public ResponseEntity<?> getFolders() {
return ResponseEntity.ok(folderRepository.findAll()); // Select star, hämtar allt
}

@DeleteMapping("/{id}")
public ResponseEntity<?> deleteFolder(@PathVariable UUID id) {
if (folderRepository.findById(id).isEmpty()) {
return ResponseEntity.notFound().build();
}

folderRepository.deleteById(id);
return ResponseEntity.ok("Deleted folder.");
}

@ToString
public static class CreateFolderDto {
public String title;
}
}

package me.FolderAPI.FolderAPI.Folder;

import lombok.RequiredArgsConstructor;
import lombok.ToString;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.net.URI;
import java.util.UUID;

@RestController
@RequestMapping("/folder")
@RequiredArgsConstructor
public class FolderController {

private final FolderRepository folderRepository;

@PostMapping
public ResponseEntity<?> createFolder(@RequestBody CreateFolderDto dto) {
if (dto.title == null || dto.title.isBlank()) {
return ResponseEntity.badRequest().body("Title may not be null or empty");
}

Folder folder = new Folder(UUID.randomUUID(), dto.title);
folderRepository.save(folder);

return ResponseEntity
.created(URI.create("/folder"))
.body(folder);
}

@GetMapping
public ResponseEntity<?> getFolders() {
return ResponseEntity.ok(folderRepository.findAll()); // Select star, hämtar allt
}

@DeleteMapping("/{id}")
public ResponseEntity<?> deleteFolder(@PathVariable UUID id) {
if (folderRepository.findById(id).isEmpty()) {
return ResponseEntity.notFound().build();
}

folderRepository.deleteById(id);
return ResponseEntity.ok("Deleted folder.");
}

@ToString
public static class CreateFolderDto {
public String title;
}
}

package me.FolderAPI.FolderAPI.Folder;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.UUID;

@Repository
public interface FolderRepository extends JpaRepository<Folder, UUID> { // Tar in två generiska typer, modelltypen och datatypen.
}

package me.FolderAPI.FolderAPI.Folder;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.UUID;

@Repository
public interface FolderRepository extends JpaRepository<Folder, UUID> { // Tar in två generiska typer, modelltypen och datatypen.
}

Ignore the comments. The errors I am getting are in FolderController: Variable 'folderRepository' might not have been initialized :15 'Folder()' cannot be applied to '(java.util.UUID, java.lang.String)' :23 FolderController
package me.FolderAPI.FolderAPI.Folder;

import lombok.RequiredArgsConstructor;
import lombok.ToString;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.net.URI;
import java.util.UUID;

@RestController
@RequestMapping("/folder")
@RequiredArgsConstructor
public class FolderController {

private final FolderRepository folderRepository;

@PostMapping
public ResponseEntity<?> createFolder(@RequestBody CreateFolderDto dto) {
if (dto.title == null || dto.title.isBlank()) {
return ResponseEntity.badRequest().body("Title may not be null or empty");
}

Folder folder = new Folder(UUID.randomUUID(), dto.title);
folderRepository.save(folder);

return ResponseEntity
.created(URI.create("/folder"))
.body(folder);
}

@GetMapping
public ResponseEntity<?> getFolders() {
return ResponseEntity.ok(folderRepository.findAll()); // Select star, hämtar allt
}

@DeleteMapping("/{id}")
public ResponseEntity<?> deleteFolder(@PathVariable UUID id) {
if (folderRepository.findById(id).isEmpty()) {
return ResponseEntity.notFound().build();
}

folderRepository.deleteById(id);
return ResponseEntity.ok("Deleted folder.");
}

@ToString
public static class CreateFolderDto {
public String title;
}
}

package me.FolderAPI.FolderAPI.Folder;

import lombok.RequiredArgsConstructor;
import lombok.ToString;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.net.URI;
import java.util.UUID;

@RestController
@RequestMapping("/folder")
@RequiredArgsConstructor
public class FolderController {

private final FolderRepository folderRepository;

@PostMapping
public ResponseEntity<?> createFolder(@RequestBody CreateFolderDto dto) {
if (dto.title == null || dto.title.isBlank()) {
return ResponseEntity.badRequest().body("Title may not be null or empty");
}

Folder folder = new Folder(UUID.randomUUID(), dto.title);
folderRepository.save(folder);

return ResponseEntity
.created(URI.create("/folder"))
.body(folder);
}

@GetMapping
public ResponseEntity<?> getFolders() {
return ResponseEntity.ok(folderRepository.findAll()); // Select star, hämtar allt
}

@DeleteMapping("/{id}")
public ResponseEntity<?> deleteFolder(@PathVariable UUID id) {
if (folderRepository.findById(id).isEmpty()) {
return ResponseEntity.notFound().build();
}

folderRepository.deleteById(id);
return ResponseEntity.ok("Deleted folder.");
}

@ToString
public static class CreateFolderDto {
public String title;
}
}

Update: I added @NoArgsConstructor to my Folder class.
dan1st
dan1st2mo ago
Did that fix it? Otherwise: Are you using JDK 23?
red
red2mo ago
Did it work?
JavaBot
JavaBot2mo ago
💤 Post marked as dormant
This post has been inactive for over 300 minutes, thus, it has been archived. If your question was not answered yet, feel free to re-open this post or create a new one. In case your post is not getting any attention, you can try to use /help ping. Warning: abusing this will result in moderative actions taken against you.

Did you find this page helpful?