Boa tarde galera. Estou com um problema no hibernate. Estou fazendo um exemplo de teste usando component no hibernate, mas ele esta dando esse erro de nome de tabela invalido:
create sequence SYSTEM.hibernate_sequence
create sequence hibernate_sequence
Hibernate: select hibernate_sequence.nextval from dual
Hibernate: insert into SYSTEM.USER (HOME_STREET, HOME_ZIPCODE, HOME_CITY, BILLING_STREET, BILLING_ZIPCODE, BILLING_CITY, USER_NAME, PASSWORD, EMAIL, RANKING, CREATED, ID_USER) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:249)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at br.com.mgf.teste.Teste.main(Teste.java:80)
Caused by: java.sql.BatchUpdateException: ORA-00903: invalid table name
at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10657)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
... 8 more
O codigo da classe e do mapping esta abaixo.
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="br.com.mgf.modelo">
<class name="User" table="USER" schema="SYSTEM">
<id name="id" column="ID_USER" type="long">
<generator class="sequence"/>
</id>
<component name="homeAddress" class="Address">
<property name="street" type="string" column="HOME_STREET" not-null="true"/>
<property name="zipCode" type="string" column="HOME_ZIPCODE" not-null="true"/>
<property name="city" type="string" column="HOME_CITY" not-null="true"/>
</component>
<component name="billingAddress" class="Address">
<property name="street" type="string" column="BILLING_STREET" not-null="true"/>
<property name="zipCode" type="string" column="BILLING_ZIPCODE" not-null="true"/>
<property name="city" type="string" column="BILLING_CITY" not-null="true"/>
</component>
<property name="userName" column="USER_NAME" type="string"/>
<property name="passWord" column="PASSWORD" type="string"/>
<property name="email" column="EMAIL" type="string"/>
<property name="ranking" column="RANKING" type="long"/>
<property name="created" column="CREATED" type="date"/>
</class>
</hibernate-mapping>
Beans…
package br.com.mgf.modelo;
import java.io.Serializable;
import java.util.Date;
public class User implements Serializable {
private Long id;
private String userName;
private String passWord;
private String email;
private Long ranking;
private Date created;
private Address homeAddress;
private Address billingAddress;
public Address getHomeAddress() {
return homeAddress;
}
public void setHomeAddress(Address homeAddress) {
this.homeAddress = homeAddress;
}
public Address getBillingAddress() {
return billingAddress;
}
public void setBillingAddress(Address billingAddress) {
this.billingAddress = billingAddress;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Long getRanking() {
return ranking;
}
public void setRanking(Long ranking) {
this.ranking = ranking;
}
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
}
package br.com.mgf.modelo;
import java.io.Serializable;
public class Address {
private String street;
private String zipCode;
private String city;
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getZipCode() {
return zipCode;
}
public void setZipCode(String zipCode) {
this.zipCode = zipCode;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
}
Classe de Teste.
public class Teste {
private static SessionFactory factory;
private static Session session;
public static void main(String[] args) {
// TODO Auto-generated method stub
session = new CreateTable().getSession();
Transaction tx = session.beginTransaction();
CreditCard cre = new CreditCard();
Address adr = new Address();
Address adr2 = new Address();
User user = new User();
adr.setStreet("arouca");
adr.setCity("passos");
adr.setZipCode("37900000");
adr2.setStreet("amazonas");
adr2.setCity("passos");
adr2.setZipCode("37900238");
user.setUserName("diego");
user.setEmail("dieguinho@mgf.com.br");
user.setPassWord("123");
user.setRanking(1l);
user.setCreated(new Date());
user.setHomeAddress(adr);
user.setBillingAddress(adr2);
session.save(user);
tx.commit();
session.close();
}
}
O que pode ser? Agradeco a ajuda