Я создаю простое приложение crud с hibernate / в памяти hsqldb, без пружины.
Я думал, что это может быть несовместимость версий, но обновление не помогло.Я попытался изменить hbm2ddl.auto на «update», но это также не помогло.
Исключение:
java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: ACCOUNT
Sql:
insert into Account (id, balance, creationDate, currency, isActive, lastModificationDate, username) values (default, ?, ?, ?, ?, ?, ?)
Сообщение:
could not prepare statement
Объект:
@Entity
@Getter
@Setter
public class Account {
@Id
@GeneratedValue
private String id;
@Column(length = 16)
private String username;
@Column(precision = 2)
private BigDecimal balance;
private Currency currency;
private boolean isActive;
@Temporal(TemporalType.TIMESTAMP)
private Date creationDate;
@Temporal(TemporalType.TIMESTAMP)
private Date lastModificationDate;
}
Метод:
@Override
public String save(Account account) {
Session session = SessionUtil.getSesssionFactory().openSession();
Transaction transaction = null;
String id = null;
try {
transaction = session.beginTransaction();
id = String.valueOf(session.save(account));
transaction.commit();
}
catch (HibernateException e){
transaction.rollback();
}
finally {
session.close();
}
return id;
}
Конфиг:
public static SessionFactory getSesssionFactory(){
Configuration cfg = new Configuration()
.addAnnotatedClass(Transfer.class)
.addAnnotatedClass(Account.class)
.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect")
.setProperty("hibernate.connection.url", "jdbc:hsqldb:mem:mydb")
.setProperty("hibernate.connection.driver_class", "org.hsqldb.jdbcDriver")
.setProperty("hibernate.connection.username", "sa")
.setProperty("hibernate.connection.password", "")
.setProperty("hibernate.hbm2ddl.auto", "create-drop");
SessionFactory sessionFactory = cfg.buildSessionFactory();
return sessionFactory;
}
pom.xml:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.6.Final</version>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.2.9</version>
</dependency>