2 u013225462 u013225462 于 2016.03.24 16:10 提问

hibernate查询多对一中的一方时是对象?

medicine是多方,所属类别category是一方,Struts2+hibernate,为什么查不了category
图片说明
medicine类:
public class Medicine {
private int id; //id号
private String name; //药品名称
private String medNu; //药品编码
private String factoryAdd; //出厂地址
private String description; //描述
private double price; //价格
private int medCount; //数量
private int reqCount; //需求数量
private String photoPath ; //图片
private Date editTime; //时间
private Category category; //类别
}
medicine.hbm.xml:


<!-- 主键 -->











<!-- 与药品类别的多对一关系 -->



category类:
public class Category {
private int id; //类别编号
private String name; //类别名称
private String description; //类别描述
private String subDesc; //类别描述的前10个字符
private Date createTime; //类别创建时间
private Set meds; //类别中的药品
}
category.hbm.xml:


<!-- 主键 -->






<!-- 与药品的一对多关系 -->





3个回答

haikuokuangtu
haikuokuangtu   2016.03.24 17:09
已采纳

首先检查多对一关系配置是否有问题,没问题的话要获得类别是可以 Medicine medicine = new Medicine();然后medicine.category.id/name/.......

另外hbm.xml里面多对一是否配置了lazy这是属性(懒加载)

u013225462
u013225462 非常感谢,在jsp改为<td>${medicine.category.name}</td>好了
2 年多之前 回复
u013225462
u013225462 多对一配置没问题,懒加载刚改完,这段是在action类里加么
2 年多之前 回复
Royal_lr
Royal_lr   Ds   Rxr 2016.03.24 18:03

一方是对象啊,打个断点看看是不是没加载的问题

u013225462
u013225462 直接输出对象了
2 年多之前 回复
u010850027
u010850027   2016.03.26 21:17

这个界面好眼熟啊,那会儿做市委组织部的项目也是这个界面风格,楼主可以跟一下代码看看。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
在hibernate中如果一对多关联,并以多的一方的参数作为条件则必须使用
public Data findDiectorByFilmId(Long filmId) { Data rows = directorDao.findRows("select new FilmDirector(fd.id as id,fd.chName as chName,fd.enName as enName,fd.birthDate as birthDate,fd.birthplace a
关于Hibernate里一对多查询结果为null的解决方法
两个都是代理对象来着,你的many-to-one的对象使用的是懒加载啊,而且在session关闭之前没有初始化返回对象,所以你在action层中调用的时候就是null的,两种决解方法 1,在session未关闭之前初始化返回的对象,使用Hiberante.initialize静态方法 Recordtalk r = (Recordtalk )super.save(recordtalk);
Hibernate 一对多的联系(Set关联) 对象关系映射
Hibernate 一对多的联系(Set关联) 对象关系映射
解决Hibernate 注解在属性上 ,多对一,一对一懒加载 当调用one那一方getId 也会查数据库的问题
使用 hibernate5.10 版本 spring boot jpa 搭建测试 首先这个问题出现的原因是把注解写在了属性上并且fetchType=lazy,写在属性上找起来方便,但是也带了一个问题,就是在getOne那一方的id的时候会查询数据库,这是我们不希望的,我们可能更想要的是在调用类似getName的方法时候查询数据库。 出现这种情况的原因是hibernate并不能找到getIden
关于hibernate的多对一单向关联,一对多单向关联,和一对多双向关联的疑惑解答
转载:http://yanghelinok.blog.163.com/blog/static/4636027220146974240760/ hibernate提供的多对一,一对多给面向对象的开发提供了更多的操作便捷,但是也引发了不少问题。 也许很多人还不知道单向关联和双向关联有什么区别?那就先来说说这两者间的异同。 单向关联:是指在实体的一端进行关系的维护,直接通过一端的操作实现业
hibernate 一对多映射 懒加载
//从一的一端查询        //hibernate 默认使用懒加载       ClassRoom cr=(ClassRoom) session.get(ClassRoom.class, 1);//get方法不会懒加载,会直接查询ClassRoom数据库,       //但不会发出查询和他一对多的两个数据库的sql       cr.getStu();//默认设置,不会发出sql语
hibernate 一对多 一对一 ,多方与一方增删改查测试结果
——-------------------------------------------------------------------   关于orcal表结构的外键的onDelete设置,如果这里配置了级联,在数据库中 主表删除数据,从表也一块删除,但从表删除主表不变。但这里配置了,实体没配置级联,程序还没法完成级联操作。程序配置了级联,这里不管设置成啥,都可级联删除。 一对一或者一对多
Hibernate中的1+N问题(带级联查询条件的情况)
1. Hibernate中的1+N问题描述            在多对一关系中,当我们需要查询多的一方对应的表的记录时,可以用一条sql语句就能完成操作。然而,在多的一方的实体类中的@ManyToOne标注的fetch的默认值是fetchType.EAGER,这时,hibernate除了发出查询多的一方对应的表的记录的sql语句外,还会发出n(多方记录数)条sql语句,这就是1+n问题
hibernate 在多的一方插入数据,发现除了外键,其他字段保存成功
在hiberante使用了一对多的双向关联,外键保存不成功,外键为null,我们插入多的一方的数据的时候发现 保存成功,但是只有一个外键字段没有保存上:
Hibernate中多对多关系转换
问题来源 在运用SSH架构开发Web应用时,总会遇到表之间一对多、多对一、多对多等等的关系,而对于多对多的关系,在操作和性能方面都不太理想,所以多对多的映射使用较少,实际使用中最好转换成一对多的对象模型;hibernate会为我们创建中间关联表,转换成两个一对多。