实体类名com.js.hibernate.User
表名T_User,所属表空间MyTables
配置文件如下,该怎么改呢?
<hibernate-mapping 
package="org.hibernate.test.interceptor">

<class name="com.js.hibernate.User" table="T_User">
<id name="id" column="id">
</id>
<property name="name" column="username"/>
<property name="password" column="userpassword"/>

</class>

</hibernate-mapping>

解决方案 »

  1.   

    Oracle 是按 Schema 来管理的,不是按表空间来的吧?
      

  2.   

    这个配置应该和Oracle表空间没关系
    你只要在hibernate.cfg.xml中配置好连接数据库相关信息就可以了。
    <property name="connection.username">SMF</property>
    <property name="connection.password">SMF</property>
    注意在创建表时,先创建表空间,
    然后为用户SMF分配默认表空间(如SMF),然后用该用户连接数据库,创建的表自然都在该表空间(SMF)下.
    进行实体与表映射时,不需要理会表空间的问题。
    例如:
    --创建表空间
    CREATE TABLESPACE SMF
    datafile  'F:\oracle\Tazi\oradata\orcl\SMF01.dbf' size 100M
    default storage(initial 10M
    next 10M
    minextents 1
    maxextents 10
    pctincrease 20)
    Online;
    --创建用户及授权
    CREATE USER SMF IDENTIFIED BY SMF
    DEFAULT TABLESPACE SMF
    TEMPORARY TABLESPACE TEMP;
    GRANT CONNECT,RESOURCE TO SMF;
      

  3.   

    <class>内加上schema="MyTables" <hibernate-mapping  
    package="org.hibernate.test.interceptor"><class name="com.js.hibernate.User" table="T_User" schema="MyTables" >
    <id name="id" column="id">
    </id>
    <property name="name" column="username"/>
    <property name="password" column="userpassword"/></class></hibernate-mapping>
      

  4.   

    修正一下,schema下写的仍然是用户名,数据库中需要为用户分配MyTables表空间