hibernate 查询方法报错

Gmonday 2013-12-10 03:32:24
报错为:java.lang.reflect.InvocationTargetException

@Override
public User findUserByName(String userName) {
// TODO Auto-generated method stub
Session session=HibernateSessionFactory.getSession();
System.out.println("ssssssssssssssssssss");
Query query=session.createQuery("from User as u where u.username=?");报错这里
User user=(User) query;
query.setString(0, userName);
HibernateSessionFactory.closeSession();
return user;
}


@Entity
public class User implements java.io.Serializable {
@Id
@GeneratedValue
private Integer userId;
private String username;
private String password;
private String name;
private Byte sex;
private String address;
private String phone;
private String post;
private String email;
private Date regTime;
private String regIpAddress;

public User() {
}

public User(String username, String password, String name, Byte sex,
String address, String phone, String post, String email,
Date regTime, String regIpAddress) {
this.username = username;
this.password = password;
this.name = name;
this.sex = sex;
this.address = address;
this.phone = phone;
this.post = post;
this.email = email;
this.regTime = regTime;
this.regIpAddress = regIpAddress;
}

public Integer getUserId() {
return this.userId;
}

public void setUserId(Integer userId) {
this.userId = userId;
}

public String getUsername() {
return this.username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return this.password;
}

public void setPassword(String password) {
this.password = password;
}

public String getName() {
return this.name;
}

public void setName(String name) {
this.name = name;
}

public Byte getSex() {
return this.sex;
}

public void setSex(Byte sex) {
this.sex = sex;
}

public String getAddress() {
return this.address;
}

public void setAddress(String address) {
this.address = address;
}

public String getPhone() {
return this.phone;
}

public void setPhone(String phone) {
this.phone = phone;
}

public String getPost() {
return this.post;
}

public void setPost(String post) {
this.post = post;
}

public String getEmail() {
return this.email;
}

public void setEmail(String email) {
this.email = email;
}

public Date getRegTime() {
return this.regTime;
}

public void setRegTime(Date regTime) {
this.regTime = regTime;
}

public String getRegIpAddress() {
return this.regIpAddress;
}

public void setRegIpAddress(String regIpAddress) {
this.regIpAddress = regIpAddress;
}

}
...全文
163 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
太阳很暗了 2013-12-11
  • 打赏
  • 举报
回复
引用 7 楼 songbgi 的回复:
[quote=引用 3 楼 oXiMeng 的回复:] Query query=session.createQuery("from User as u where u.username=?");报错这里 User user=(User) query.list().get(1); query.setString(0, userName); 郁闷。。我没看到。改成这样。
反了吧 你都开始查询了 然后才赋值?[/quote] 郁闷,确实啊。
乔不思 2013-12-10
  • 打赏
  • 举报
回复
你已经在 实体类里面注解了,,就没必要在用。。。.hbm.xml了
Gmonday 2013-12-10
  • 打赏
  • 举报
回复
引用 10 楼 MrsFeng 的回复:
你既然用了注解,那么为什么entity上面不申明@table(name="数据库表名"),你不申明hibernate容器里面根本就找不到这张表
我在.hbm.xml里面注解了的

<hibernate-mapping>
	<class name="com.mon.po.User" table="users" schema="dbo"
		catalog="fcShopping">
		<id name="userId" type="java.lang.Integer">
			<column name="userID" />
			<generator class="native"></generator>
		</id>
		<property name="username" type="java.lang.String">
			<column name="username" length="50" />
		</property>
		<property name="password" type="java.lang.String">
			<column name="password" length="50" />
		</property>
		<property name="name" type="java.lang.String">
			<column name="name" length="50" />
		</property>
		<property name="sex" type="java.lang.Byte">
			<column name="sex" />
		</property>
		<property name="address" type="java.lang.String">
			<column name="address" length="50" />
		</property>
		<property name="phone" type="java.lang.String">
			<column name="phone" length="50" />
		</property>
		<property name="post" type="java.lang.String">
			<column name="post" length="50" />
		</property>
		<property name="email" type="java.lang.String">
			<column name="email" length="50" />
		</property>
		<property name="regTime" type="java.util.Date">
			<column name="regTime" length="23" />
		</property>
		<property name="regIpAddress" type="java.lang.String">
			<column name="regIpAddress" length="50" />
		</property>
	</class>
</hibernate-mapping>
你好毒你好毒 2013-12-10
  • 打赏
  • 举报
回复
你既然用了注解,那么为什么entity上面不申明@table(name="数据库表名"),你不申明hibernate容器里面根本就找不到这张表
Gmonday 2013-12-10
  • 打赏
  • 举报
回复
引用 3 楼 oXiMeng 的回复:
Query query=session.createQuery("from User as u where u.username=?");报错这里 User user=(User) query.list().get(1); query.setString(0, userName); 郁闷。。我没看到。改成这样。
报错 还是老样子
Gmonday 2013-12-10
  • 打赏
  • 举报
回复
引用 6 楼 kililixi233 的回复:
User user=(User) query;这是?
因为我最后要返回一个User 对象嘛
  • 打赏
  • 举报
回复
引用 3 楼 oXiMeng 的回复:
Query query=session.createQuery("from User as u where u.username=?");报错这里 User user=(User) query.list().get(1); query.setString(0, userName); 郁闷。。我没看到。改成这样。
反了吧 你都开始查询了 然后才赋值?
UnlimitedCoder 2013-12-10
  • 打赏
  • 举报
回复
User user=(User) query;这是?
乔不思 2013-12-10
  • 打赏
  • 举报
回复
你看看 你写的对吗? 那个得到的是Query对象。应该这样写
Query query=s.createQuery("from Title t where t.catagery.id=1");//多的这方调用少的这方
		List<Title> ts=query.list();
		for(Title t:ts){
			System.out.println(t.getName());
		}
阿志008 2013-12-10
  • 打赏
  • 举报
回复
?需要加引号吗
太阳很暗了 2013-12-10
  • 打赏
  • 举报
回复
Query query=session.createQuery("from User as u where u.username=?");报错这里 User user=(User) query.list().get(1); query.setString(0, userName); 郁闷。。我没看到。改成这样。
  • 打赏
  • 举报
回复
User user=(User) query; 没用过这种
太阳很暗了 2013-12-10
  • 打赏
  • 举报
回复
Query query=session.createQuery("from User u where u.username=?");报错这里 User user=(User) query; query.setString(1, userName); 改成这样试试、

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧