hibernate多对多查询会出现多余数据

空指针 发布于 2016/08/02 15:09
阅读 388
收藏 0
一个实体对象train同时与两个对象为多对多关系,hibernate注解配置如下:
        /**
	 * 训练题目
	 */
	@ManyToMany(fetch = FetchType.EAGER)
	@JoinTable(name="GC_TRAIN_SUBJECT",
		joinColumns={@JoinColumn(name="trainId")},
		inverseJoinColumns={@JoinColumn(name="subjectId")}
	)
	private List<SubjectModel> subjectList;
	
	/**
	 * 训练目标设备
	 */
	@ManyToMany(fetch = FetchType.EAGER) 
	@JoinTable(name="GC_TRAIN_SIMULATOR",
		joinColumns={@JoinColumn(name="trainId")},
		inverseJoinColumns={@JoinColumn(name="simulatorId")}
	)
	private List<SimulatorModel> simulatorList;

设定train中包含1个设备即simulatorList.size() = 1;  包含3到试题即subjectList.size() =3 ;

当通过innerId查询train时:

session.get(clazz, innerId);

getSimulatorList()得到的simulatorList.size() = 3 ; 得到数据中设备的ID都是相同的,对每一个试题记录都会有一个train记录,共三条。

hibernate 没有做特殊配置。





加载中
0
0
空指针
空指针

引用来自“一拳超人”的评论

什么表?

你是要表结构吗 ? 

返回顶部
顶部