org.hibernate.exception.GenericJDBCException: could not get table metadata: IdCard
Caused by: java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]无效的描述符索引
我写一对多联系的时候出现了这两个错误 我用的是sql server2005 不知道是什么原因?
本人是菜鸟 希望高手们不吝赐教..
Caused by: java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]无效的描述符索引
我写一对多联系的时候出现了这两个错误 我用的是sql server2005 不知道是什么原因?
本人是菜鸟 希望高手们不吝赐教..
解决方案 »
- c:foreach标签输出list的问题
- JAVA语言实现中国地图
- XMLConfiguration如何获取子节点的个数?
- struts2中action的问题
- 有关STRUTS的html:text赋value值的问题?
- java.lang.IllegalArgumentException: Resources cannot be null.郁闷!高手出手啊!
- java和EXE
- Hibernate连接SQLserver出错,SEVERE: Error parsing XML: XML InputStream(2) The markup in the document preceding the root element
- 关于java测试的问题
- 求eclipse jbosside 文档资料
- 求一正则
- 现在SSH框架主流的分别是哪个版本了?
现在补充:
SLF4J: The requested version 1.5.11 by your slf4j binding is not compatible with [1.5.5, 1.5.6, 1.5.7, 1.5.8]
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.
16 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.5.0-Final
16 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
16 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
16 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
109 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml
109 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml
203 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : myTest/hibernate.hbm.xml
266 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: myTest.test1 -> test1
281 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : myTest/Product1.hbm.xml
297 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: myTest.Product1 -> Product1
312 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : myTest/IdCard.hbm.xml
312 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: myTest.IdCard -> IdCard
328 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : myTest/student1.hbm.xml
328 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: myTest.student1 -> student1_db
344 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : myTest/class1.hbm.xml
344 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: myTest.class1 -> class1_db
391 [main] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null
406 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)
406 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20
406 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false
406 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: sun.jdbc.odbc.JdbcOdbcDriver at URL: jdbc:odbc:mydata
406 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=, password=****}
1719 [main] INFO org.hibernate.cfg.SettingsFactory - RDBMS: Microsoft SQL Server, version: 09.00.1399
1719 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC driver: JDBC-ODBC Bridge (SQLSRV32.DLL), version: 2.0001 (03.85.1117)
1766 [main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.SQLServerDialect
1781 [main] INFO org.hibernate.engine.jdbc.JdbcSupportLoader - Disabling contextual LOB creation as JDBC driver reported JDBC version [2] less than 4
1781 [main] INFO org.hibernate.transaction.TransactionFactoryFactory - Using default transaction strategy (direct JDBC transactions)
1781 [main] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled
1781 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): disabled
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
1781 [main] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}
1781 [main] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Echoing all SQL to stdout
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled
1781 [main] INFO org.hibernate.cfg.SettingsFactory - Check Nullability in Core (should be disabled when Bean Validation is on): enabled
1828 [main] INFO org.hibernate.impl.SessionFactoryImpl - building session factory
2016 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
2016 [main] INFO org.hibernate.tool.hbm2ddl.SchemaUpdate - Running hbm2ddl schema update
2016 [main] INFO org.hibernate.tool.hbm2ddl.SchemaUpdate - fetching database metadata
2016 [main] INFO org.hibernate.tool.hbm2ddl.SchemaUpdate - updating schema
2016 [main] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: S1002
2016 [main] ERROR org.hibernate.util.JDBCExceptionReporter - [Microsoft][ODBC SQL Server Driver]无效的描述符索引
2016 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate - could not complete schema update
org.hibernate.exception.GenericJDBCException: could not get table metadata: IdCard
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
at org.hibernate.tool.hbm2ddl.DatabaseMetadata.getTableMetadata(DatabaseMetadata.java:128)
at org.hibernate.cfg.Configuration.generateSchemaUpdateScript(Configuration.java:1030)
at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:187)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:384)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1385)
at myTest.insert_m_o.main(insert_m_o.java:19)
Caused by: java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]无效的描述符索引
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3907)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5698)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:354)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:411)
at org.hibernate.tool.hbm2ddl.TableMetadata.<init>(TableMetadata.java:55)
at org.hibernate.tool.hbm2ddl.DatabaseMetadata.getTableMetadata(DatabaseMetadata.java:113)
... 5 more
2016 [main] WARN org.hibernate.util.JDBCExceptionReporter - SQL Warning: 5701, SQLState: 01000
2016 [main] WARN org.hibernate.util.JDBCExceptionReporter - [Microsoft][ODBC SQL Server Driver][SQL Server]已将数据库上下文更改为 'mydata'。
2016 [main] WARN org.hibernate.util.JDBCExceptionReporter - SQL Warning: 5703, SQLState: 01000
2016 [main] WARN org.hibernate.util.JDBCExceptionReporter - [Microsoft][ODBC SQL Server Driver][SQL Server]已将语言设置更改为 简体中文。
这是我出现的问题!以下是我的Order1.java
package myTest;
public class Order1
{
private int order_id;
private int member_id;
private int number;
member1 m1;
public member1 getM1() {
return m1;
}
public void setM1(member1 m1) {
this.m1 = m1;
}
public int getOrder_id() {
return order_id;
}
public void setOrder_id(int orderId) {
order_id = orderId;
}
public int getMember_id() {
return member_id;
}
public void setMember_id(int memberId) {
member_id = memberId;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
}
Order1.hbm.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="myTest.Order1" table="t_Order1">
<id name="order_id" column="order_id"/>
<generator class="increment"/>
</id>
<property name="number"/>
<property name="member_id"/>
<many-to-one name="m1"
column='member_id'
class='myTest.member1'/>
</class>
</hibernate-mapping>
member1.java如下:
package myTest;
import java.util.HashSet;
import java.util.Set;
public class member1
{
private Set orders_set=new HashSet();
private int member_id;
private String name;
private char sex;
private int age;
public Set getOrders_set() {
return orders_set;
}
public void setOrders_set(Set ordersSet) {
orders_set = ordersSet;
}
public int getMember_id() {
return member_id;
}
public void setMember_id(int memberId) {
member_id = memberId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}member1.hbm.xml为:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="myTest.member1" table="t_member">
<id name="member_id" column="member_id"/>
<generator class="increment"/>
</id>
<property name="name"/>
<property name="sex"/>
<property name="age"/>
<set name="orders_set" order-by="order_id" cascade="all">
<key column="member_id"/>
<one-to-many class="myTest.Order1"/>
</set>
</class>
</hibernate-mapping> 这是持久化的操作:
insert_m_o.javapackage myTest;
import java.util.HashSet;
import java.util.Set;
import org.hibernate.*;
import org.hibernate.cfg.Configuration;
public class insert_m_o
{
public static void main(String args[])
{
member1 m1=new member1();
Order1 o1=new Order1();
Order1 o2=new Order1();
m1.setAge(12);
m1.setName("小龙");
m1.setSex('m');
o1.setNumber(23);
o2.setNumber(54);
Configuration cg=new Configuration().configure();
SessionFactory sf=cg.buildSessionFactory();
Session session=sf.openSession();
Transaction ts=null;
try
{
ts=session.beginTransaction();
o1.setM1(m1);
o2.setM1(m1);
m1.getOrders_set().add(o1);
m1.getOrders_set().add(o2);
session.save(m1);
session.flush();
ts.commit();
}
catch(HibernateException e )
{
ts.rollback();
}
finally
{
session.close();
}
}
}搞不懂了....