Hibernate: How to fix "identifier of an instance altered from X to Y"?
org.hibernate.HibernateException: identifier of an instance
of org.cometd.hibernate.User altered from 12 to 3
in fact, my user
table is really must dynamically change its value, my Java app is multithreaded.
Any ideas how to fix it?
Solution 1:
Are you changing the primary key value of a User object somewhere? You shouldn't do that. Check that your mapping for the primary key is correct.
What does your mapping XML file or mapping annotations look like?
Solution 2:
You must detach your entity from session before modifying its ID fields
Solution 3:
In my case, the PK Field in hbm.xml was of type "integer" but in bean code it was long
.
Solution 4:
In my case getters and setter names were different from Variable name.
private Long stockId;
public Long getStockID() {
return stockId;
}
public void setStockID(Long stockID) {
this.stockId = stockID;
}
where it should be
public Long getStockId() {
return stockId;
}
public void setStockId(Long stockID) {
this.stockId = stockID;
}