JPA Persistierung von einer Map abgeleiteten Klasse

maxpade

Mitglied
Hallo zusammen

ich habe möchte mit JPA eine Tabellenstruktur aufbauen. Dabei ist eine Innere Klass von einer HashMap abgeleitet und hier weiß ich nicht, wie ich die Annotations richtig setzen soll.

Ich habe hier ein Beispiel zusammengestellt und dabei soll folgendes rauskommen

Tabelle Car:
id|anyContent1|anycontent2
-----------------------------
1|Porsche | 911
2|OPEL | Astra

Tabelle CarItem
id|key |value |car_Id
-----------------------
1|color |green|1
2|seats| 4 |1


Die Klasse muß eine Inner Class sein und sie muß von HashMap abgeleitet sein. Das Beispiel ist nur exemplarisch und ist vereinfacht. Danke

Code:
@Entity
public class Car{


	@Entity
	public class CarItems extends HashMap<String, String>{

		@OneToOne
		Car carObj = new Car();

		public Car getCar() {
			return carObj;
		}
		public void setCar(Car carObj) {
			this.carObj = carObj;
		}
                
		double priceOfAllItems;
		.....
	}



  	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private int carId;


       	public void setCarId(int carId) {
		this.carId = carId;
	}
	
	public int getCarId() {
		return carId;
	}


	@OneToOne(mappedBy="cdb")
        private Car_Items carItems;

	public CAData getCAR() {
		return caData;
	}

	public String getResultID() {
		return resultID;
	}

}
Meine Annotations sind wie im code gesetzt falsch, wie sind sie richtig zu setzen?
vielen Dank für jede Hilfe grüße

Max
 
Hi,

ich verstehe nicht ganz, warum CarItem unbedingt von Hashmap erben muss und warum dass eine InnerClass sein muss. Das sieht für mich ganz klassisch nach einer 1:n Verbindung zwischen Car und CarItem aus. In JavaCode hättest du dann in deiner Klasse Car eine List mit CarItems.

Grüße
Peter
 
Hallo Peter,

ja ich könnte auch die innere Klasse rausnehmen und ein HashMap-Objekt einfügen. Doch auch dieser beschriebene Codestück ist sicherlich mit JPA-Annotations abbildbar.
Eine Idee wie das geht?

Vielen Dank

max
 
Zurück