I want to include a database to my JavaFX app. I chose h2 and configured hibernate to use with it. The problem is that it doesnt' create tables from entities like it's supposed to. What I did, I have these dependecies:
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.1.214</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>6.2.7.Final</version>
</dependency>
I have this hibernate.cfg.xml
configuration file stored in the resources
folder:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">org.h2.Driver</property>
<property name="connection.url">jdbc:h2:file:./database
</property>
<property name="connection.username">...</property>
<property name="connection.password">...</property>
<property name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property> // setting to create also didn't help
<mapping class="my.package.model.TestEntity"/>
</session-factory>
</hibernate-configuration>
TestEntity
is annotated with needed annotations like @Entity
:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "test_entity")
public class TestEntity {
@Column(name = "test")
@Id
private String test;
}
But it's not working, the database is getting created, but there is no TestEntity
table. What could be the problem?
So the problem was with 2 things:
import jakarta.persistence.Entity
not import javax.persistence.Entity;
AUTO_SERVER=TRUE
.