Java 非英语数据插入Oracle

Java 非英语数据插入Oracle,java,oracle,hibernate,utf-8,Java,Oracle,Hibernate,Utf 8,如何在Oracle中插入非英语数据。我尝试了下面的代码,在插入之前数据是印地语的 Worker POJO class @Column(name = "name", columnDefinition = "VARCHAR2(255)") private String name; //getter and setter Insert Session session = HibernateUtil.getSessionFactory().getCurrentSession(); Transacti

如何在Oracle中插入非英语数据。我尝试了下面的代码,在插入之前数据是印地语的

Worker POJO class

@Column(name = "name", columnDefinition = "VARCHAR2(255)")
private String name;
//getter and setter

Insert
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tx= null;

try { tx = session.beginTransaction();
Worker w = new Worker;
w.setName = "मनीषा";
System.out.println(w.getName()) // Prints the data in hindi
session.save(Worker);
}
tx.commit();
//Catch block
当我从数据库中选择记录时,它会显示“??”。我应该得到的结果是“मनीषा". 我在这里做错了什么

Select
try { tx = session.beginTransaction();
String hsql = "from Worker";
Query query = session1.createQuery(hsql);
query.list(); // Prints ?????
}
tx.commit();
这是我使用hiberate 4.3.5的db配置文件。我已经为非英语字符设置了utf-8。如何使用hibernate从oracle保存和获取印地语数据

<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:xe</property>
        <property name="hibernate.connection.password">pass</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <property name="hibernate.current_session_context_class">thread</property>
        <property name="show_sql">false</property>
        <property name="hbm2ddl.auto">create</property>
        <property name="connection.useUnicode">true</property>
        <property name="connection.characterEncoding">utf-8</property>
        <property name="connection.charSet">utf-8</property>
        <mapping class="com.dep.dao.Worker"></mapping>
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@localhost:1521:xe
通过
根
org.hibernate.dialen.oracle10galent
线
假的
创造
真的
utf-8
utf-8

您需要NVARCHAR2而不是VARCHAR2。@Filburt对此也做了尝试。它不起作用。同样的问题以下查询的结果是什么:从sys.nls_数据库_参数中选择值,其中参数='nls_CHARACTERSET';@tbone WE8MSWIN1252字符集WE8MSWIN1252不支持Devanagari,因此您必须使用NVARCHAR2,除非您不支持读取数据库的字符集。请查看此文档: