Ich habe folgendes Problem:
Wenn ich diese Klasse Speichere und danach abfrage, ist die Id nicht gesetzt;
Code:
@Entity
public class Master implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private Integer id;
private String name;
@Id
@GeneratedValue(generator="increment")
@GenericGenerator(name="increment",strategy="increment")
@Column(name="master_id")
private int _masterId;
@Column(name="master_id", insertable=false,updatable=false)
private int masterId;
public Master() {
}
public Master(String name) {
this.name = name;
}
@Override
public String toString() {
return "Master:Id=" + id + " MasterId=" + masterId + ",Name=" + name;
}
}
Ich mache folgendes:
Code:
Session s = HibernateUtil.getCurrentSession();
Master m = new Master("Master1");
Transaction mtx = s.beginTransaction();
s.save(m);
System.out.println(m);
mtx.commit();
System.out.println(m);
Beide male erhalte ich folgenden output:
Master:Id=null MasterId=0,Name=Master1
Master:Id=null MasterId=0,Name=Master1
Wieso zum henker, ist die verdammte Id null?
Noch kurioser wird es, wenn ich mir bei der save methode die Id zurück geben lasse und das Objekt in einer eigenen Transaktion laden lasse:
Code:
Session s = HibernateUtil.getCurrentSession();
Transaction tx = s.beginTransaction();
System.out.println(s.get(Master.class, id));
tx.commit();
Auch hier folgt die selbe ausgabe:
Code:
Master:Id=null MasterId=1,Name=Master1
Und noch was, die DB ist eine MS SQL und wenn ich normal einen select mache, ist da das id-Feld gefüllt mit einer id (von der DB)
Ich hoffe jemand kann mir helfen
Danke schon mal