无法将java.lang.Integer字段设置为java.lang.Integer
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了无法将java.lang.Integer字段设置为java.lang.Integer,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1862字,纯文字阅读大概需要3分钟。
内容图文
![无法将java.lang.Integer字段设置为java.lang.Integer](/upload/InfoBanner/zyjiaocheng/700/9ed3531e8d9a45ec8c7a8aa3a3f99e79.jpg)
用户声明:
@Entity
public class User {
@Id
@GeneratedValue
private Integer id;
....
模式声明:
@Entity
public class Pattern {
@Id
@GeneratedValue
Integer id;
...
UserPatternDeclaration:
public class UserPattern {
@Id
@GeneratedValue
Integer id;
@ManyToOne
@JoinColumn(name = "user_id")
User user;
@ManyToOne
@JoinColumn(name = "pattern_id")
Pattern pattern;
...
请求数据库:
Session session = sessionFactory.getCurrentSession();
Query query = session.createQuery("from UserPattern where user = :user_id and pattern = :pattern_id ");
query.setParameter("user_id", userId);
query.setParameter("pattern_id", pattern_id);
List<UserPattern> list = query.list();//exception throws here
我有以下异常:
...
java.lang.IllegalArgumentException: Can not set java.lang.Integer field
com.....s.model.User.id to java.lang.Integer
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:164)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:168)
at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:55)
at sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:36)
at java.lang.reflect.Field.get(Field.java:379)
....
请帮助解决此问题.
错误信息看起来很奇怪.
我已阅读相关主题click但我没有找到答案.
附:
休眠日志(异常之前):
Hibernate:
select
userpatter0_.id as id1_2_,
userpatter0_.amountSearched as amountSe2_2_,
userpatter0_.amountplayed as amountpl3_2_,
userpatter0_.pattern_id as pattern_4_2_,
userpatter0_.user_id as user_id5_2_
from
UserPattern userpatter0_
where
userpatter0_.user_id=?
and userpatter0_.pattern_id=?
在浏览器中,我看到以下消息:
HTTP Status 500....could not get a field value by reflection getter of...model.User.id
解决方法:
如果您将HQL查询更改为UserPattern,其中user.id =:user_id和pattern.id =:pattern_id,会发生什么?
我认为Hibernate会混淆对象和ID字段.
内容总结
以上是互联网集市为您收集整理的无法将java.lang.Integer字段设置为java.lang.Integer全部内容,希望文章能够帮你解决无法将java.lang.Integer字段设置为java.lang.Integer所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。