spring+hibernate 向数据库提交语句出现乱码

Hibernate:selecttype0_.type_idastype1_,type0_.type_nameastype2_5_fromonline.typetype0... Hibernate: select type0_.type_id as type1_, type0_.type_name as type2_5_ from online.type type0_ where type0_.type_name='???ú'
Hibernate: insert into online.type (type_name, type_id) values (?, ?)
Hibernate: select type0_.type_id as type1_, type0_.type_name as type2_5_ from online.type type0_ where type0_.type_name='???ú'
2015-7-20 23:02:36 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at com.DAO.ProductDAO.getId(ProductDAO.java:17)
上面是错误提示
下面是出错的地方(如果传入的是中文就会出现上面的错,英文就不会)

public Type getId(String t){
@SuppressWarnings("unchecked")
List<Type> typeId = this.getHibernateTemplate().find("from Type where typeName = '"+t+"'");
Type ty = typeId.get(0);
return ty;
}
单独打印出传入的 t 无论中英文都是对的
改hibernate.cfg.xml文件中
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/online?useUnicode=true&characterEncoding=UTF8</property>
已试过无用···求教各位大神!
展开
 我来答
娜灬然
2015-07-21
知道答主
回答量:18
采纳率:0%
帮助的人:4.8万
展开全部
  1. antlr的问题 , 暂时的解决方法是 
            将 hibernate.query.factory_class 属性设置成 org.hibernate.hql.classic.ClassicQueryTranslatorFactory ,是可以了,但用不了批量更新和删除功能

  2. 这是Hibernate3.02- 3.05的 BUG 。解决办法是升级到 Hibernate3.1 rc2 ! 只需要替换 文件就可以了!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式