Witam. Uczę się obsługi Hibernate. Po wielu trudach niby udało się dodać coś do bazy (Hsqldb) ale jak robię SELECT * to wywala mi dziwny błąd: Error code -5501, SQL state 42501: user lacks privilege or object not found: USERS
Mam beana Users.java
@Entity
public class Users implements Serializable {
@Id
private int userId;
private String userName;
//dalej są gettery i settery...
plik hibernate.cfg.xml wygląda tak:
<?xml version='1.0' encoding='utf-8'?>
<!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>
<!-- Database connection settings -->
<property name="connection.driver_class">org.hsqldb.jdbc.JDBCDriver</property>
<property name="connection.url">jdbc:hsqldb:localhost</property>
<property name="connection.username">SA</property>
<property name="connection.password"></property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.HSQLDialect</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">update</property>
<!-- Names the annotated entity class -->
<mapping class="bean.Users"/>
</session-factory>
</hibernate-configuration>
Do tego plik z metodą main:
package hibernate_app;
import bean.Users;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class Hibernate_app {
public static void main(String[] args) {
Users nowy = new Users();
nowy.setUserId(1);
nowy.setUserName("pierwszy");
SessionFactory sessionfactory = new Configuration().configure().buildSessionFactory();
Session session = sessionfactory.openSession();
session.beginTransaction();
session.save(nowy);
session.getTransaction().commit();
}
}
Po uruchomieniu dostaję coś takiego:
run:
2013-01-02 16:06:30 org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
2013-01-02 16:06:30 org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.1.9.Final}
2013-01-02 16:06:30 org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
2013-01-02 16:06:30 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
2013-01-02 16:06:30 org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml
2013-01-02 16:06:30 org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: /hibernate.cfg.xml
2013-01-02 16:06:30 org.hibernate.cfg.Configuration doConfigure
INFO: HHH000041: Configured SessionFactory: null
2013-01-02 16:06:31 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)
2013-01-02 16:06:31 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 1
2013-01-02 16:06:31 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000006: Autocommit mode: false
2013-01-02 16:06:31 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000401: using driver [org.hsqldb.jdbc.JDBCDriver] at URL [jdbc:hsqldb:localhost]
2013-01-02 16:06:31 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000046: Connection properties: {user=SA, password=****}
Hibernate: insert into Users (userName, userId) values (?, ?)
BUILD SUCCESSFUL (total time: 2 seconds)
Nie rozumiem dlaczego przy wykonaniu SELECT * FROM Users; wywala tamtem dziwny błąd... Łączę się oczywiście z tą samą bazą co w programie czyli jdbc:hsqldb:localhost
Wie ktoś coś na ten temat?