Hey all,
While using Hibernate w/ H2, we ran into this weird case today where the H2
primary Id for an entity and the generated SQL Id for the same entity had a
mismatch. Been struggling with this one for a while and any help would be
appreciated !
Here's the Java class that we have (Cut out irrelevant portions of the
code) :
////////////////////////////////////////////////////////////////////////////////////////////////
@Entity(name="some_entity")
@Table(name = "table_name")
@EqualsAndHashCode
public class ProblemClass implements Serializable {
private long identifier;
private ProblemClass parent;
@Override
@Id
@GeneratedValue
@Column(name = "identifier")
public long getIdentifier() {
return id;
}
public void setIdentifier(long identifier) {
this.id = id;
}
@Nullable
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "parent", referencedColumnName = "identifier")
public ProblemClass getParent() {
return parent;
}
public void setParent(@Nullable ProblemClass parent) {
this.parent = parent;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Here's the H2 creation code that we have :
CREATE TABLE table_name (
`identifier` bigint(10) NOT NULL auto_increment,
`parent_id` bigint(10) DEFAULT NULL,
.......
}
///////////
The data generation used to work absolutely fine till today when the
generated sql and the SQL when I use the H2 to inspect didn't match the
parentId that was being referred to.
For example, In the SQL file we found this statement : INSERT INTO
PUBLIC.TABLE_NAME(identifier, parent_id) VALUES
(1, 1)
(2, 1)
(3, 6)
...
But in the H2 database, we found this (when I do select * from TABLE_NAME)
(1, 1)
(2, 1)
(3, 2)
Eventually, this led to a *org.hibernate.ObjectNotFoundException: No row
with the given identifier exists* issue while retrieving a row, whose Id
number doesn't exist in the DB.
*Questions* :
1) Am I doing something incorrect/invalid ?
2) How could the generated SQL (using Hibernate's SessionImpl) and the H2
DB values be different ? (Previously, it used to be the exact same -
whatever was observed on the generated SQL files was what got inserted into
the H2 db)
3) Are there any known issues with the auto_increment feature on H2 ?
Thanks a ton!
Cheers,
Anerudh
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.