hibernate 多对多配置orm出的对象bug

宝石娃娃 发布于 2013/08/29 13:43
阅读 282
收藏 0

举例说明

个人

@Entity

@Table(name = "baseinfo_enterprise")
public class APPLICANT {
// 行业类型

private List<TRADE_ASTYPE> trade_types;
@OneToMany(fetch=FetchType.EAGER)
@JoinTable(name = "relate_enterprise_tradetype", joinColumns = { @JoinColumn(name = "enterprise_id", referencedColumnName = "uuid") }, inverseJoinColumns = { @JoinColumn(name = "tradetype_id", referencedColumnName = "uuid") })

行业类型

@Entity
@Table(name = "base_astype")
public class TRADE_ASTYPE {

//个人
private List<APPLICANT> applicants;
@OneToMany(mappedBy="trade_types")
public List<APPLICANT> getApplicants() {
return applicants;
}

2个对象 对象关系是n:n 我配置无论是oneTomany 还是manyToMany 结果使用 criteria.list()查询个人List时候都可能会多出现一个结果

个人表

id   name 

1     张三

行业表

id  name

1  电子

2 航天

关联表 假设 张三对应这2个行业 那么得出的结果为什么是list 是2条记录呢

加载中
0
softsword
softsword
数据库从来不会外键
0
DanielTo
DanielTo
        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
宝石娃娃
宝石娃娃
哦 太感谢了。顺便问您下,我怎样才能把对象转换成json 呢。能贴下你的代码更好了
DanielTo
DanielTo
@宝石娃娃 Criteria 没有去重
宝石娃娃
宝石娃娃
我用你的这个方法去重了,能和我说下原因吗? 为什么hibernate不默认去掉这个呢
返回顶部
顶部