2017-01-15 2 views
0

Ich habe Code für die Vererbung der Tabelle Pro Klasse geschrieben, der in youtube tutorial angezeigt wird. In meinem Code habe ich StoreData.java, die Objekte und Vehicle.java als Elternklasse und TwoWheeler.java, FourWheeler.java als Kind Klassen speichert.Tabelle pro Klassenvererbung: Nullwert erhalten

StoreData.java

import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.Transaction; 
import org.hibernate.cfg.AnnotationConfiguration; 

public class StoreData { 
    public static void main(String[] args) { 

     SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); 
     Session session = sessionFactory.openSession(); 
     Transaction t = session.beginTransaction(); 

     Vehicle vehicle = new Vehicle(); 
     vehicle.setVehicle_Name("Car"); 

     TwoWheeler twoWheeler = new TwoWheeler(); 
     twoWheeler.setBikeModel("HONDA CBR 250"); 

     FourWheeler fourWheeler = new FourWheeler(); 
     fourWheeler.setFourWheelerModel("HONDA City"); 

     session.save(vehicle); 
     session.save(twoWheeler); 
     session.save(fourWheeler); 

     t.commit(); 
     session.close(); 


    } 
} 

Vehicle.java

import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.Inheritance; 
import javax.persistence.InheritanceType; 
@Entity 
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS) 
public class Vehicle { 

    @Id 
    @GeneratedValue(strategy=GenerationType.TABLE) 
    private int vehicle_id; 
    private String Vehicle_Name; 


    public int getVehicle_id() { 
     return vehicle_id; 
    } 
    public void setVehicle_id(int vehicle_id) { 
     this.vehicle_id = vehicle_id; 
    } 
    public String getVehicle_Name() { 
     return Vehicle_Name; 
    } 
    public void setVehicle_Name(String vehicle_Name) { 
     Vehicle_Name = vehicle_Name; 
    } 



} 

TwoWheeler.java

import javax.persistence.Entity; 

@Entity 
public class TwoWheeler extends Vehicle { 
    private String bikeModel; 

    public String getBikeModel() { 
     return bikeModel; 
    } 

    public void setBikeModel(String bikeModel) { 
     this.bikeModel = bikeModel; 
    } 

} 

FourWheeler.java

import javax.persistence.Entity; 

@Entity 
public class FourWheeler extends Vehicle { 
    private String fourWheelerModel; 

    public String getFourWheelerModel() { 
     return fourWheelerModel; 
    } 

    public void setFourWheelerModel(String fourWheelerModel) { 
     this.fourWheelerModel = fourWheelerModel; 
    } 

} 

Ich habe MySql verwendet und Daten in der Tabelle sieht so aus. Tabelle Fahrzeug:

 
vehicle_d vehicle_name 
    1   Car 

Zweirad Tabelle:

 
vehicle_id vehicle_name bikemodel 
2   null  HONDA CBR 250 

Zweiachser Tabelle:

 
vehicle_id vehicle_name bikemodel 
3   null   HONDA City 

hier innerhalb vehicle_name Spalte I null statt Auto bekommen werde. Was ist der Fehler, den ich begangen habe? Bitte erzähle.

Antwort

0
+0

In diesem Beispiel haben sie Hibernate-Konfigurationsdatei verwendet, aber in meinem Code habe ich Annotation für die Vererbung verwendet und Sie haben meine Frage nicht beantwortet. – sajid

+0

Ich bin nicht sicher, welche Anmerkungen zu verwenden, aber eine Sache, die ich definitiv sage Wenn es mit Konfigurationsdatei möglich ist, dann muss es auch mit Anmerkungen trainieren. –

0

Sie sollten anstelle der Großschreibung Kleinschreibung verwenden, so:

Änderung der erste Buchstabe von

private String Vehicle_Name; 

An:

private String vehicle_Name; 

Sie können erfahren Sie mehr über How do getters and setters work?

Hoffe das kann dir helfen.

+0

Das ist mein Fehler. Ich habe Änderungen vorgenommen, aber das Ändern des Namens der Mitgliedsvariablen hat mein Problem nicht gelöst. Ich bekomme vehicle_name immer noch als null in Twowheeler- und Fourwheelertabellen. – sajid

+0

Ich bin sicher, dass Sie dieses Problem haben, also debuggen Sie einfach Ihr Programm und Sie werden sehen, ok –