Java classes
🧩 Syntax:
package com.example.db.models;
import jakarta.persistence.*;
@Entity
@Table(name="users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="user_id")
private int userId;
private String username;
private String password;
@Column(name="user_type")
@Enumerated(EnumType.STRING)
private UserType userType;
@OneToOne(fetch = FetchType.LAZY, mappedBy = "user")
private Review review;
public User() {}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public UserType getUserType() {
return userType;
}
public void setUserType(UserType userType) {
this.userType = userType;
}
}
--------------------------------------------------------------------------------------------
package com.example.db.models;
import jakarta.persistence.*;
@Entity
@Table(name="reviews")
public class Review {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="review_id")
private int reviewId;
private double rating;
private String comment;
@OneToOne(fetch = FetchType.LAZY ,cascade = CascadeType.REMOVE)
@JoinColumn(name="review_id")
private User user;
@ManyToOne(fetch = FetchType.LAZY ,cascade = CascadeType.REMOVE)
@JoinColumn(name="book_id")
private Book book;
public Review() {}
public int getReviewId() {
return reviewId;
}
public void setReviewId(int reviewId) {
this.reviewId = reviewId;
}
public double getRating() {
return rating;
}
public void setRating(double rating) {
this.rating = rating;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Book getBook() {
return book;
}
public void setBook(Book book) {
this.book = book;
}
}
------------------------------------------------------------------------
package com.example.db.models;
public enum UserType {
administrator("administrator"), user("user"), banned("banned");
private final String type;
private UserType(String type) {
this.type = type;
}
public String getType() { return type; }
}
-------------------------------------------------------------------------
for(Book b : books) {
System.out.println(b);
for(var r : b.getReviews()) {
System.out.println(r.getRating() + " " + r.getUser());
}
}