Probleme mit getId() beim TableGenerator mit JPA

mniemann

Grünschnabel
Hallo zusammen,

ich habe folgendes Problem:

Ich lasse mir durch eine extra Tabelle (HIBERNATE_KEY_TABLE) die Id`s für den primären Schlüssel einer Tabelle erzeugen.

HTML:
	/**
	 * gets Id (primary key)
	 *
	 * @return id Id (primary key)
	 */
	@Id
	@TableGenerator(name = "TABLENAME_GENERATOR", table = "HIBERNATE_KEY_TABLE",pkColumnName = "TABLE_NAME", valueColumnName = "NEXT_VALUE", pkColumnValue = "TABLENAME",allocationSize = 1)
	@GeneratedValue(strategy = GenerationType.TABLE, generator = "TABLENAME_GENERATOR")
	@Column(name = "ID", unique = true, nullable = false, insertable = true, updatable = true, precision = 10)
	public long getId() {
		return this.id;
	}

	/**
	 * sets Id (primary key)
	 *
	 * @param id Id (primary key)
	 */
	public void setId(long id) {
		this.id = id;
	}

Dies klappt soweit auch ganz gut, d.h. das Abspeichern eines Datensatzes ist in Ordnung. Nur leider komme ich an die ID des gerade abgespeicherten Datensatzes nicht ran. Nach einem persist() bekomme ich bei getId() eine "0" anstatt der richtig vergegebenen Id zurück.

HTML:
			/* persist the object */
			manager.persist(brain);
			long id = brain.getId();

Was mache ich noch falsch?

Vielen Dank im Voraus,
Markus
 
Zuletzt bearbeitet:
Hallo,

scheint als ob ich das Problem mittlerweile selbst gelöst hab. Es liegt daran, dass ich per remote arbeite und alle Daten serialisiert werden, ich dadurch aber kein Rückgabeobjekt hatte.

Markus
 
Zurück