can u help me fix my code(provide crud method, see if there are any additons to getters and setters, service classes for Account and Budget and other things that u may notice) :
my structure:

com.wealthguardian
├── models
├── repositories
├── services
├── controllers
└── exceptions
my code so far:
2. Models

#### User.java

package com.yourcompany.wealthguardian.models;

import javax.persistence.;
import java.util.List;

@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long userId;
private String username;
private String password;
private String email;
// getters and setters
}


#### Transaction.java

package com.yourcompany.wealthguardian.models;

import javax.persistence.;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Entity
public class Transaction {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long transactionId;
private BigDecimal amount;
private String type; // Income or Expense
private LocalDateTime date;

@ManyToOne
@JoinColumn(name = “account_id”)
private Account account;
// getters and setters
}


#### Account.java

package com.yourcompany.wealthguardian.models;

import javax.persistence.;
import java.util.List;

@Entity
public class Account {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long accountId;
private String accountType; // Checking, Savings, Investment etc.

@ManyToOne
@JoinColumn(name = “user_id”)
private User user;

@OneToMany(mappedBy = “account”)
private List<Transaction> transactions;
// getters and setters
}


#### Budget.java

package com.yourcompany.wealthguardian.models;

import javax.persistence.;
import java.math.BigDecimal;

@Entity
public class Budget {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long budgetId;
private BigDecimal amount;
private String category;

@ManyToOne
@JoinColumn(name = “user_id”)
private User user;
// getters and setters
}


### 3. Repositories (DAOs)

#### UserRepository.java

package com.yourcompany.wealthguardian.repositories;

import com.yourcompany.wealthguardian.models.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
User findByUsername(String username);
}


#### TransactionRepository.java

package com.yourcompany.wealthguardian.repositories;

import com.yourcompany.wealthguardian.models.Transaction;
import org.springframework.data.jpa.repository.JpaRepository;

public interface TransactionRepository extends JpaRepository<Transaction, Long> {
}


#### AccountRepository.java

package com.yourcompany.wealthguardian.repositories;

import com.yourcompany.wealthguardian.models.Account;
import org.springframework.data.jpa.repository.JpaRepository;

public interface AccountRepository extends JpaRepository<Account, Long> {
}


#### BudgetRepository.java

package com.yourcompany.wealthguardian.repositories;

import com.yourcompany.wealthguardian.models.Budget;
import org.springframework.data.jpa.repository.JpaRepository;

public interface BudgetRepository extends JpaRepository<Budget, Long> {
}


### 4. Services

#### UserService.java

package com.yourcompany.wealthguardian.services;

import com.yourcompany.wealthguardian.models.User;
import com.yourcompany.wealthguardian.repositories.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {
@Autowired
private UserRepository userRepository;

public User registerUser(User user) {
// hash password logic
return userRepository.save(user);
}

public User findUserByUsername(String username) {
return userRepository.findByUsername(username);
}

// other CRUD operations
}


#### TransactionService.java

package com.yourcompany.wealthguardian.services;

import com.yourcompany.wealthguardian.models.Transaction;
import com.yourcompany.wealthguardian.repositories.TransactionRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class TransactionService {
@Autowired
private TransactionRepository transactionRepository;

public Transaction saveTransaction(Transaction transaction) {
return transactionRepository.save(transaction);
}

public List<Transaction> getAllTransactions() {
return transactionRepository.findAll();
}

// other CRUD operations
}


// Similar service classes for Account and Budget

### 5. Controllers

#### UserController.java

package com.yourcompany.wealthguardian.controllers;

import com.yourcompany.wealthguardian.models.User;
import com.yourcompany.wealthguardian.services.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping(“/users”)
public class UserController {
@Autowired
private UserService userService;

@PostMapping(“/register”)
public User registerUser(@RequestBody User user) {
return userService.registerUser(user);
}

@GetMapping(“/{username}”)
public User getUser(@PathVariable String username) {
return userService.findUserByUsername(username);
}

// other CRUD endpoints
}


// Similar controller classes for Transaction, Account, and Budget

### 6. Exceptions

#### CustomException.java

package com.yourcompany.wealthguardian.exceptions;

public class CustomException extends RuntimeException {
public CustomException(String message) {
super(message);
}
}


#### GlobalExceptionHandler.java

package com.yourcompany.wealthguardian.exceptions;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

@ControllerAdvice
public class GlobalExceptionHandler {

@ExceptionHandler(CustomException.class)
public ResponseEntity<String> handleCustomException(CustomException ex) {
return new ResponseEntity<>(ex.getMessage(), HttpStatus.BAD_REQUEST);
}

// other exception handlers
}