我有三张桌子
Section (id, title, url)//id is Primary key
Category (id, title)//id is Primary key
SubCategory (id, title)//id is Primary key
在这里,我想像简单查询一样连接这些表
Select * From Category cat, Section se, SubCategory subCat WHERE
subCat.id=23456 AND subCat.category=cat.id AND subCat.section = se.id
我的实体文件为:
@Entity
@Table(name="section")
public class SectionEntity{
private int id;
private String title;
//Getter & setter method
}
@Entity
@Table(name="category")
public class CategoryEntity{
private int id;
private String title;
private Set<SubCategoryEntity> subCategory;
//Getter & setter method
@OneToMany(cascade = CascadeType.ALL, fetch=FetchType.LAZY)
@JoinColumn(name="category", insertable=false, updatable=false)
public Set<SubCategoryEntity> getSubCategory(){
return this.subCategory;
}
}
@Entity
@Table(name="subcategory")
public class SubCategoryEntity{
private int id;
private String title;
private Set<SectionEntity> sectionEntity;
//Getter & setter method
@OneToMany(fetch=FetchType.LAZY)
@JoinColumn(name="id", insertable=false, updatable=false)
public Set<SectionEntity> getSectionEntity(){
this.section;
}
}
步骤1:创建类别实体条件categoriesCriteria=Session.CreateCriteria(CategoriesEntity.Class,“CategoryEntity”);
步骤2:创建SubCategoryEntity和SectionEntity CategoriesCriteria.createAlias的别名(“CategoryEntity.SubCategoryEntity”、“SubCatentity”);CategoriesCriteria.CreateAlias(“SubcatEntity.SectionsEntity”,“SubcatSectionEntity”);
步骤3:在投影列表中设置属性
步骤4:将限制添加为:CategoriesCriteria.Add(restrictions.eq(“subCatentity.id”,primCategoryId));
步骤5:将projection属性设置为CategoryEntity条件CategoriesCriteria.SetProjection(ProjectProplist);
select this_.id as y0_, this_.title as y1_, this_.sef_url as y2_, subcatenti1_.id as y3_, subcatenti1_.title as y4_, subcatenti1_.sef_url as y5_
from jos_categories this_
inner join jos_subcategories subcatenti1_ on this_.id=subcatenti1_.category
inner join jos_sections subcatsect2_ on subcatenti1_.id=subcatsect2_.id
where subcatenti1_.id=?
select this_.id as y0_, this_.title as y1_, this_.sef_url as y2_, subcatenti1_.id as y3_, subcatenti1_.title as y4_, subcatenti1_.sef_url as y5_
from jos_categories this_
inner join jos_subcategories subcatenti1_ on this_.id=subcatenti1_.category
inner join jos_sections subcatsect2_ on subcatenti1_.section=subcatsect2_.id
where subcatenti1_.id=?
我怎样才能做到这一点,有人能帮我吗?
在SubCategoryFile中进行如下更改,
1)删除“private int section;”及其所有getter和setter方法。
2)并使用此
@JoinColumn(name="section", insertable=false, updatable=false)
public Set<SectionEntity> getSection(){
this.section;
}
然后试着跑。我希望它能奏效
我正在尝试使用条件连接多个表,但遇到了一些问题,请帮助我:我有一个sql查询,如: 这三个表:截止时间(has country)、国家、交易所(has country)是3个实体类。 我如何使用hibernate标准像这样加入,我下面的代码仍然不完整:
AnsprechPartner Lieferant ansprechpartner.java lieferant.java 在我的AnsprechPartner.java中,我是这样做的: 在我的Lieferanten.java中,我是这样做的:
我想用spring数据写一个查询,可以找到所有有自己的狗和车的人…可以有任何身体帮助吗
问题内容: 使用Hibernate的条件,我想执行以下操作: 我认为执行以下操作将产生想要的结果: 但是,这实际上是执行类似以下操作: 显然,这引发了错误。 除了不使用条件以外,还有解决方案吗? 谢谢, 布兰登 问题答案:
我有两个实体与单向@OneTo多项映射: 我想获得所有B实体的列表,它们是匹配限制的A实体的子实体。 这就是我卡住的地方:c.list()将返回给我一个对象列表。我不关心A,我想要B。我如何使用Hibernate标准/预测来完成它?如果有关系,我使用Hibernate 4.2.12 在这种简化的情况下,只是急切地去拿是有意义的;在真实的例子中,有一个由四个一对一的单向关联组成的链,我想让所有(或者
问题内容: 我有2个Java类和,它们都存在于数据库中。 人: 关系: 每个人都有(或没有)关系列表,当关系的child_id或parent_id等于该人的id时,应将关系添加到列表中。 TL; DR:当=>将关系添加到与人的关系列表中时 我面临的问题是该注释: 创建以下SQL(只是必要的部分): Java Hibernate中正确的注释是什么,以生成一条用 OR* 代替 AND 的SQL语句 *