package com.mcf7.spring.domain;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
@lombok.Getter
@lombok.Setter
@lombok.EqualsAndHashCode(of = "isbn")
@lombok.ToString(exclude="id")
@Entity
public class Book implements Serializable {
public Book() {}
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private long id;
@NotNull
@Size(min = 1)
private String isbn;
@NotNull
@Size(min = 1)
private String title;
@NotNull
@Size(min = 1)
private String author;
@NotNull
@Size(min = 1)
private String description;
}
Just a note since a few things are going on here I wanted to break them down real quick.
All of the annotations with @lombok are generating some of our class's boiler plate
@lombok.Getter //Creates getter methods for our variables
@lombok.Setter //Creates setter methods four our variables
@lombok.EqualsAndHashCode(of = "isbn") //Creates Equals and Hashcode methods based off of the isbn variable
@lombok.ToString(exclude="id") //Creates a toString method based off of every variable except id
We also leveraged Validation in this Object
@NotNull //This specifies that when validation is called this element shouldn't be null
@Size(min = 1) //This specifies that when validation is called this String shouldn't be smaller than 1