- 浏览: 404215 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
dageda_jgw:
...
JSF定义及原理 -
尘土飞扬:
这个在NB7中已经无效了,加不加都会提示 UTF8打不开
Netbeans统一UTF-8编码的方法 -
ouyangkang20:
不对
Struts target is null for setProperty(null, "x", [Ljava.lang.String;@179da9f) -
wpf523:
hahah,很不错啊
mysql安装图解教程 5.1 -
taburissmeng:
action中相应的属性没有set get方法就会报这样的错。 ...
Struts target is null for setProperty(null, "x", [Ljava.lang.String;@179da9f)
第一种方法:
比如有2个entity
class A {
private List <B> bs;
}
Class B {
}
A表
id, value
1, AAA
2, XXX
B表
id, value, AId
1, BBB, 1
2, CCC, 1
3, DDD, 1
以下两种方法,即使出现null也不出错
SELECT a FROM A a, In(a.bs) b WHERE a.value=XXX and b.value = BBB //光选A没问题
SELECT b FROM A a, In(a.bs) b WHERE a.value=XXX and b.value = BBB //光选B没问题
但是同时选a,b的时候就出错了,原因当时分析了一下,同时选a,b时
即SELECT a, b FROM A a, In(a.bs) b WHERE a.value=XXX and b.value = BBB
实际上JPA还是分步执行,即先选出a,然后在调用a.getB选出b,所以当没有满足A条件的a时,即a是null时,调用a.getB会出错的
当然,只是根据异常信息推测,并没有证实
第二种方法:
1.student,score,coure的实体关联定义如下: ------------------------------------------------------------------------------------------------ Student: @Entity ----------------------------------------------------------------------------------------------- Score: Course实体无关联注解。 -------------------------------------------------------------------------------------------------------------- student跟course是多对多单向,student可访问course student跟score是一对多双向 score跟course是多对一单向,score可访问course --------------------------------------------------------------------------------------------------------------- 查找学生1所有课程的所有成绩: 客户端: sql输出: 默认及时加载???(不是对集合默认延迟加载吗?),JPQL将查询改为如下也可以: 输出的sql语句如下:多对多关联查询sql语句
@Table(name="tb_student")
public class Student implements Serializable {
.....
private Set<Course> courses=new HashSet<Course>();
private Set<Score> scores=new HashSet<Score>();
.....
@ManyToMany
@JoinTable(name="tb_student_course",
joinColumns=@JoinColumn(name="student_id",referencedColumnName="id"),
inverseJoinColumns=@JoinColumn(name="course_id",referencedColumnName="id")
)
public Set<Course> getCourses() {
return courses;
}
public void setCourses(Set<Course> courses) {
this.courses = courses;
}
@OneToMany(mappedBy="student")
public Set<Score> getScores() {
return scores;
}
public void setScores(Set<Score> scores) {
this.scores = scores;
}
}@Entity
@Table(name="tb_score")
public class Score implements Serializable {
@ManyToOne
@JoinColumn(name="course_id")
public Course getCourse() {
return course;
}
public void setCourse(Course course) {
this.course = course;
}
@ManyToOne
@JoinColumn(name="student_id")
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
}
-------------------------------------------------------------------------------------------------
public List<Score> findScoreByStudentId(Integer id) {
List<Score> ls=em.createQuery("select score from Student s join s.scores score where s.id=:id")
.setParameter("id", id)
.getResultList();
return ls;
}
ScoreDAO scoredao=(ScoreDAO)cxt.lookup("ScoreDAOBean/remote");
List<Score> scores1=scoredao.findScoreByStudentId(new Integer(1));
System.out.println("==查询学生1的所有科目成绩");
for(Score s:scores1 ){
System.out.println(s.getCourse().getName()+"--"+s.getScore());
}
结果输出:==查询学生1的所有科目成绩
course1--99.0
course2--98.0
22:21:07,765 INFO [STDOUT] Hibernate:
select
scores1_.id as id19_,
scores1_.course_id as course4_19_,
scores1_.student_id as student3_19_,
scores1_.score as score19_
from
tb_student student0_
inner join
tb_score scores1_
on student0_.id=scores1_.student_id
where
student0_.id=?
22:21:07,765 INFO [STDOUT] Hibernate:
select
course0_.id as id18_0_,
course0_.name as name18_0_,
course0_.description as descript3_18_0_,
course0_.optional as optional18_0_,
course0_.teacher as teacher18_0_
from
tb_course course0_
where
course0_.id=?
22:21:07,765 INFO [STDOUT] Hibernate:
select
student0_.id as id20_1_,
student0_.name as name20_1_,
student0_.description as descript3_20_1_,
student0_.class_id as class9_20_1_,
student0_.temporary as temporary20_1_,
student0_.age as age20_1_,
student0_.sex as sex20_1_,
student0_.birthday as birthday20_1_,
student0_.createDate as createDate20_1_,
classeo1_.id as id17_0_,
classeo1_.classname as classname17_0_
from
tb_student student0_
left outer join
tb_class classeo1_
on student0_.class_id=classeo1_.id
where
student0_.id=?
22:21:07,781 INFO [STDOUT] Hibernate:
select
course0_.id as id18_0_,
course0_.name as name18_0_,
course0_.description as descript3_18_0_,
course0_.optional as optional18_0_,
course0_.teacher as teacher18_0_
from
tb_course course0_
where
course0_.id=?
public List<Score> findScoreByStudentId(Integer id) {
List<Score> ls=em.createQuery("select s.scores from Student s where s.id=:id")
.setParameter("id", id)
.getResultList();
return ls;
}
结果输出:
==查询学生1的所有科目成绩
course1--99.0
course2--98.0
22:36:55,546 INFO [STDOUT] Hibernate:
select
scores1_.id as id19_,
scores1_.course_id as course4_19_,
scores1_.student_id as student3_19_,
scores1_.score as score19_
from
tb_student student0_
inner join
tb_score scores1_
on student0_.id=scores1_.student_id
where
student0_.id=?
22:36:55,546 INFO [STDOUT] Hibernate:
select
course0_.id as id18_0_,
course0_.name as name18_0_,
course0_.description as descript3_18_0_,
course0_.optional as optional18_0_,
course0_.teacher as teacher18_0_
from
tb_course course0_
where
course0_.id=?
22:36:55,546 INFO [STDOUT] Hibernate:
select
student0_.id as id20_1_,
student0_.name as name20_1_,
student0_.description as descript3_20_1_,
student0_.class_id as class9_20_1_,
student0_.temporary as temporary20_1_,
student0_.age as age20_1_,
student0_.sex as sex20_1_,
student0_.birthday as birthday20_1_,
student0_.createDate as createDate20_1_,
classeo1_.id as id17_0_,
classeo1_.classname as classname17_0_
from
tb_student student0_
left outer join
tb_class classeo1_
on student0_.class_id=classeo1_.id
where
student0_.id=?
22:36:55,562 INFO [STDOUT] Hibernate:
select
course0_.id as id18_0_,
course0_.name as name18_0_,
course0_.description as descript3_18_0_,
course0_.optional as optional18_0_,
course0_.teacher as teacher18_0_
from
tb_course course0_
where
course0_.id=?
发表评论
-
target is null for setProperty(null, "x", [Ljava.lang.String;@b0c40e)错误异常
2012-05-22 18:06 1089在提交form表单的时候发现后台经常出现类似异常, ... -
Spring 表达式语言 (Spring Expression Language) SpEL
2012-03-15 11:21 1998Spring 3.0 创建了一种新的方式用以配置对象的注入(s ... -
freemarker数据格式化问题(即数值超过四位数时有逗号)
2009-10-17 22:34 4011当数据超过3位的时候,freemarker会自动用逗号截取 格 ... -
Struts target is null for setProperty(null, "x", [Ljava.lang.String;@179da9f)
2009-10-15 18:34 15297上午工作中出现了这样一个异常: ognl. ... -
freemarker 的内建函数 contains 的使用
2009-09-16 20:01 19859freemarker 的内建函数 contains 的使用:& ... -
FreeMarker学习
2009-09-16 19:29 1931关于FreeMarker 的基础学习请参考文档。。这里主要 ... -
spring/struts2 整合(转载)
2009-07-31 16:00 889在Struts2中整合Spring的IoC ... -
Java开发,重在整合-----Struts 2整合Spring
2009-07-31 15:55 181113.2 Struts 2整合Spring Str ... -
Struts2.1.6与spring2.5.5集成
2009-07-29 17:00 1464把struts2-spring-plugin-2.1.6.ja ... -
基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发 (3)
2009-07-29 16:46 1563进入我们基于Annotation的Struts2.0+H ... -
基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发 (2)
2009-07-29 16:42 1349基于Annotation的SSH整合开发,其实,并没有我 ... -
基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发 (1)
2009-07-29 16:37 1283写这个主题的文章在 ... -
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 整合开发
2009-07-29 16:29 1991来自:http://www.cnitblog.com/intr ... -
Struts2.1.x+Spring2.5.x+Hibernate3.2.x实例教程
2009-07-29 12:07 1746、最简单的SSH程序 概要 本文将完成最常见的login功能 ... -
Struts2.1.6测试小记
2009-07-29 11:53 928Struts2.1.x终于推出正式版了,迫不急待地下了试试(读 ... -
集成struts2 spring hibernate,使用注解
2009-07-29 01:03 2094转载自:http://www.iteye.com/topic/ ...
相关推荐
spring data jpa 的Specifications动态查询 单条件查询 多条件查询 分页查询
JPA 方法名常用查询 JPA 使用@Query注解实现JPQL和本地自定义查询 JPA API 条件查询 (子查询,多表连接查询) JPA结合QueryDSL轻松完成复杂查询(自连接,多表连接查询) 参与文档: Pro JPA2中文版:精通Java持久化API ...
此资源集成了相关的JPA资源,包括JPA官方文档 JPA详解 JPA批注参考 JPA应用……
包括:解析方法名称以自动生成查询、 NamedQueries、 @Query指定查询、本地查询、命名化参数、更新查询、创建查询的顺序等内容 第四章:客户化扩展JpaRepository 包括:讲述如何在JpaRepository基础上扩展我们自己...
'SpringDataJPA从入门到精通'分为12章 内容包括整体认识JPA、JPA基础查询方法、定义查询方法、注解式查询方法、@Entity实例里面常用注解详解、JpaRepository扩展详解、JPA的MVC扩展REST支持、DataSource的配置、乐观...
主要介绍了springboot使用JPA时间类型进行模糊查询的方法,需要的朋友可以参考下
主要介绍了JPA的多表复杂查询的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
SpringBoot是一款基于Spring框架的开发框架,而Spring-data-JPA是在Hibernate的基础上实现JPA规范的ORM框架。...同时,也可以定义一些自定义的查询方法,例如findAllByName(String name, Pageable pag
JPA应用注解中文参考 使用 JPA 时,可以使用批注配置实体的 JPA 行为。批注是一种使用元数据修饰 Java 源代码的简单表达方法,它编译为相应的 Java 类文件,以便在运行时由 JPA 持续性提供程序解释以管理 JPA 行为。
NULL 博文链接:https://xiaohuxiaoyu.iteye.com/blog/729073
此压缩包为一个eclipse上的jpa工程,其中包含了对MySql数据库的增删该,及分页查询。本工程只在main方法运行,没有页面展示
前段时间MySQL5.X启动不了服务,网上查了很多方法也为解决,最后升级成8.X系列软件。使用spring data jpa 框架进行连接出现了很多问题,现对相关问题进行总结梳理
在很多情况下,我们使用Spring-Data- Jpa,一些简单的查询,我们都喜欢用定义方法查询,而不是写JPQL。JPA为我们提供了一组注解:使用Spring-Data- Jpa为我们提供的@EntityGraph,或@EntityGraph和@NamedEntityGraph...
springboot-jpa 在https://git.oschina.net/didispace/SpringBoot-Learning 的chapter3-2-4基础上,增加分页、JpaRepository各种查询方法、一对一配置,一对多。
JPA对于单表的或者简单的SQL查询非常友好,甚至可以说非常智能。他为你准备好了大量的拿来即用的持久层操作方法。甚至只要写findByName这样一个接口方法,他就能智能的帮你执行根据名称查找实体类对应的表数据,完全...
下面小编就为大家分享一篇让JPA的Query查询接口返回Map对象的方法,具有很的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
本篇文章主要介绍了Spring Data JPA实现动态查询的两种方法,具有一定的参考价值,有兴趣的可以了解一下。
Spring整合Spring Data JPA 的使用,包括三种的查询方式 借助接口中的定义好的方法完成查询 jpql的查询方式 方法名称规则查询
春天数据jpa额外使用jpa的spring数据更舒适我爱spring-data-jpa,她放开我的双手,粗鲁的方法很无聊! 然而,尽管她为我们提供了规范解决方案,但她在动态本机查询上并不完美,而且她的返回类型必须是一个实体,但是...
本系统修改自若依后台管理系统,数据访问方式换成了spring jpa,单表增删改查完全不用写sql,使用jpa提供的方法就可以,只有需要多表关联查询时直接执行sql。同时后台代码整体重写一遍,做了简化。