Hibernate Oracle创建表
我在通过hibernate在oracle中创建表时遇到问题。 我得到以下两个错误:Hibernate Oracle创建表,oracle,hibernate,jdbc,Oracle,Hibernate,Jdbc,我在通过hibernate在oracle中创建表时遇到问题。 我得到以下两个错误: Could not execute JDBC batch update 及 这是我的hibernate.cfg.xml 例外情况 看起来您正在Hibernate中创建getter和setter,但我很确定您没有创建表。这只是对Oracle表的引用,该表显然还不存在。因此,错误表或视图不存在 你能发布整个异常吗?日志中有SQL吗?哪个查询失败?SessionFactory SessionFactory=new C
Could not execute JDBC batch update
及
这是我的hibernate.cfg.xml
例外情况
看起来您正在Hibernate中创建getter和setter,但我很确定您没有创建表。这只是对Oracle表的引用,该表显然还不存在。因此,错误表或视图不存在 你能发布整个异常吗?日志中有SQL吗?哪个查询失败?SessionFactory SessionFactory=new Configuration.configure.buildSessionFactory;Session Session=sessionFactory.openSession;事务tx=session.beginTransaction;教师=新教师444,sds,sdfd,dfg;session.saveteacher;tx.commit;session.flush;会议结束;System.out.printlnCalisti;您的模式不太可能被称为SamTest。这更有可能是最糟糕的。如果对Hibernate的功能有疑问,请打开SQL语句日志记录,例如在log4j.properties中添加log4j.logger.org.Hibernate.SQL=DEBUG。
ORA-00942: table or view does not exist
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:ORCL</property>
<property name="hibernate.connection.username">system</property>
<property name="hibernate.connection.password">mypass</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
<property name="hibernate.default_schema">SamTest</property>
<property name="hibernate.connection.pool_size">5</property>
<property name="show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping class="com.sam.Teacher" />
</session-factory>
</hibernate-configuration>
@Table(schema="SamTest")
public class Teacher {
@Id
//@GenericGenerator(name = "generator", strategy = "increment")
private int teacher_Id;
@Column
private int teacher_No;
@Column
private String teacher_Name;
@Column
private String teacher_Surname;
@Column
private String department;
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
public int getTeacher_Id() {
return teacher_Id;
}
public void setTeacher_Id(int teacher_Id) {
this.teacher_Id = teacher_Id;
}
public int getTeacher_No() {
return teacher_No;
}
public void setTeacher_No(int teacher_No) {
this.teacher_No = teacher_No;
}
public String getTeacher_Name() {
return teacher_Name;
}
public void setTeacher_Name(String teacher_Name) {
this.teacher_Name = teacher_Name;
}
public String getTeacher_Surname() {
return teacher_Surname;
}
public void setTeacher_Surname(String teacher_Surname) {
this.teacher_Surname = teacher_Surname;
}
public Teacher() {
}
public Teacher(int teacher_No, String teacher_Name, String teacher_Surname, String department) {
this.teacher_No = teacher_No;
this.teacher_Name = teacher_Name;
this.teacher_Surname = teacher_Surname;
this.department=department;
}
}
Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:268)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133)
at com.sam.RunHiber.main(RunHiber.java:23)
Caused by: java.sql.BatchUpdateException: ORA-00942: table or view does not exist
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10500)
at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:230)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
... 8 more