Single table inheritance strategy.
@DiscriminatorColumn(
name="VEHICLE_TYPE",
discriminatorType=DiscriminatorType.STRING
)
It changes dtype to vehicle_type in table
HibernateTest.java
package org.yash.hibernate;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.yash.dto.FourWheeler;
import org.yash.dto.TwoWheeler;
import org.yash.dto.Vehicle;
public class HibernateTest {
public static void main(String
args[]) {
Vehicle vehicle =
new Vehicle();
vehicle.setVehicleName("Car");
TwoWheeler bike = new TwoWheeler();
bike.setVehicleName("Bike");
bike.setSteeringHandle("Bike
Steering Handle");
FourWheeler car =
new FourWheeler();
car.setVehicleName("Porsche");
car.setSteeringWheel("Porsche
Steering Wheel");
SessionFactory
sessionFactory = new Configuration().configure()
.buildSessionFactory();
Session session =
sessionFactory.openSession();
/* It is used
to save all the objects and to define single unit of work */
session.beginTransaction();
session.save(vehicle);
session.save(bike);
session.save(car);
session.getTransaction().commit();
session.close();
}
}
Vehicle.java
package org.yash.dto;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(
name="VEHICLE_TYPE",
discriminatorType=DiscriminatorType.STRING
)
public class Vehicle {
@Id @GeneratedValue
private int vehicleId;
private String vehicleName;
public int getVehicleId()
{
return vehicleId;
}
public void setVehicleId(int vehicleId) {
this.vehicleId = vehicleId;
}
public String
getVehicleName() {
return vehicleName;
}
public void
setVehicleName(String vehicleName) {
this.vehicleName = vehicleName;
}
}
TwoWheeler.java
package org.yash.dto;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
@Entity
@DiscriminatorValue("Bike")
public class TwoWheeler extends Vehicle {
private String SteeringHandle;
public void
setSteeringHandle(String steeringHandle) {
SteeringHandle =
steeringHandle;
}
public String getSteeringHandle()
{
return SteeringHandle;
}
}
FourWheeler.java
package org.yash.dto;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
@Entity
@DiscriminatorValue("Car")
public class FourWheeler extends Vehicle {
private String steeringWheel;
public void
setSteeringWheel(String steeringWheel) {
this.steeringWheel =
steeringWheel;
}
public String
getSteeringWheel() {
return steeringWheel;
}
}
No comments:
Post a Comment