首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

Hibernate运行时出现异常Column 'clazz_' not found

2013-04-02 
Hibernate运行时出现错误Column ɼlazz_' not found本人新手,正在学习spring mvc框架,在工程中

Hibernate运行时出现错误Column 'clazz_' not found
本人新手,正在学习spring mvc框架,在工程中出现错误,求高手指导!
错误提示:
严重: Servlet.service() for servlet [springServlet] in context with path [/rename] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: Column 'clazz_' not found.; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: Column 'clazz_' not found.] with root cause
java.sql.SQLException: Column 'clazz_' not found.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1093)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2734)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.engine.jdbc.internal.proxy.AbstractResultSetProxyHandler.continueInvocation(AbstractResultSetProxyHandler.java:104)
at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
at $Proxy41.getInt(Unknown Source)
at org.hibernate.type.descriptor.sql.IntegerTypeDescriptor$2.doExtract(IntegerTypeDescriptor.java:66)
at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:65)
......

出现错误的代码如下:
User.java:(其他Entity文件继承了该文件)


@Entity
@Table(name="user")
@Inheritance(strategy=InheritanceType.JOINED)
public class User {
@Id
@GenericGenerator(name="generator", strategy="increment")
@GeneratedValue(generator="generator")
private int id;

@Column(name="email", unique=true, nullable=false)
private String email;

@Column(name="pwd", unique=false, nullable=false)
private String pwd;
//......省略其他属性和getter与setter
}

UserDao.java:

public interface UserDao extends JpaRepository<User, Long> {
@Query(value="select * from user where email = ?1 and pwd = ?2", nativeQuery=true)
public User findByEmailAndPwd(String email, String pwd);
}

UserService.java:

@Transactional
@Service("userService")
public class UserService {
@Autowired private UserDao userDao;

public int verify(String email, String pwd){
User user = userDao.findByEmailAndPwd(email, pwd);
if(user == null) return -1;
else return user.getId();
}
}

LoginController.java:

@Controller
public class LoginController {
@Autowired private UserService userService;

@RequestMapping(value="/login")
public String login(HttpServletRequest request, Model model) throws UnsupportedEncodingException {
request.setCharacterEncoding("utf-8");
HttpSession session = request.getSession();

String email = request.getParameter("email");


String pwd = request.getParameter("pwd");
String type = request.getParameter("type");
int result = userService.verify(email, pwd);
if(result > 0) {
session.setAttribute("id", result);
session.setAttribute("category", type);
userService.setLogin(result, Time.getCurrentTime());
return "/index";
} else return "/home";
}
}

hibernate spring
[解决办法]
Column 'clazz_' not found. 

你用的是select * ,clazz_这个字段在hibernate配置 映射文件里有没有给对应啊
[解决办法]
都是因为字段的不匹配造成的,看看这的说明吧 http://www.ablanxue.com/prone_4109_1.html
[解决办法]
应该是你的xxx.hbm.xml映射文件字段没有跟数据库中的字段对应吧,你检查一下,还有我觉得你这样写不好,hibernate本来就是解耦的,你又故意用了这么多标签,岂不是有点多余吗?

热点排行