Files
java-design-patterns/single-table-inheritance/src/main/java/com/iluwatar/entity/Vehicle.java
T
Jun Kang 6816c34218 deps: Updated the imports in code of the single table inheritance pattern for SpringBoot 3.x (#2847)
* Updated the imports in code of the single table inheritance pattern for Spring Boot 3.x

#2825
Change javax library to jakarta

* add pom.xml
2024-03-26 20:23:06 +02:00

55 lines
1.3 KiB
Java

package com.iluwatar.entity;
import jakarta.persistence.DiscriminatorColumn;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Inheritance;
import jakarta.persistence.InheritanceType;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
* An abstract class that is the root of the Vehicle Inheritance hierarchy
* and basic provides properties for all the vehicles.
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "VEHICLE_TYPE")
public abstract class Vehicle {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int vehicleId;
private String manufacturer;
private String model;
protected Vehicle(String manufacturer, String model) {
this.manufacturer = manufacturer;
this.model = model;
}
@Override
public String toString() {
return "Vehicle{"
+ "vehicleId="
+ vehicleId
+ ", manufacturer='"
+ manufacturer
+ '\''
+ ", model='"
+ model
+ '}';
}
}