当前位置: 首页 > 知识库问答 >
问题:

Hibernate从子表中选择查询

广绪
2023-03-14

我刚开始冬眠。我有两张桌子,有一对多的关系。有两个表格:

public class Pashmina implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "sq_pashmina_id")
    @SequenceGenerator(name = "sq_pashmina_id", sequenceName = "sq_pashmina_id")
    @Column(name = "PASHMINA_ID")
    private int pashminaId;

    @Column(name = "PASHMINA_NAME")
    private String pashminaName;

    @Column(name = "PRICE")
    private double price;

    @Column(name = "ADDED_AT", insertable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date addedAt;

    @Column(name = "CATEGORY")
    private String category;

    @Column(name = "ENABLED", insertable = false)
    private Character enabled;

    @OneToMany(mappedBy = "colourId", fetch = FetchType.EAGER)
    private Set<PashminaColour> pashminaColor  = new HashSet<PashminaColour>();

    @OneToMany(mappedBy = "imageId", fetch = FetchType.EAGER)
    private Set<Image> images  = new HashSet<Image>();

    @OneToMany(mappedBy = "descriptionId", fetch = FetchType.EAGER)
    private Set<Description> descriptions  = new HashSet<Description>();

    //getter and setter method

这是一个父类,它与图像表有一对多关系

public class Image implements Serializable {
    @Id
    @Column(name = "IMAGE_ID")
    private int imageId;

    @Column(name = "IMAGE_NAME")
    private String imageName;

    @JoinColumn(name = "PASHMINA_ID", referencedColumnName = "PASHMINA_ID")
    @ManyToOne
    private Pashmina pashmina;

现在我想使用父类的id(即:pashminaId)从Image类中选择一个imagenames

如:

选择IMAGE_NAMETBL_IMAGEPASHMINA_ID='some_digit';

我怎么能在图像类中传递pashminaId,因为没有pashminaId它只有一个父类Pashmina的对象创建。

那么,我如何在Hibernate中实现这一点?

谢谢!希望得到积极的回应。

共有1个答案

怀飞扬
2023-03-14

由于Hibernate处理对象而不是SQL表,因此您可以从图像对象中简单地访问pashmina对象,并且在查询中处理java对象/POJO,因此您可以通过图像访问它。帕什米纳。帕什米奈德

因此,您可以编写以下查询:

String hql = "select I.imageName FROM Image I WHERE I.pashmina.pashminaId = 10";
Query query = session.createQuery(hql);
List results = query.list(); 
 类似资料:
  • 我是php和sql的基本用户,想做一个购物车系统,我需要您的帮助,为这个脚本。 结果是表中的所有列表都显示在页面上,我希望有一个弹出页面,如果您单击其中一个产品,它将显示在弹出页面上 如果您注意到我添加了一个锚标记,因为这是指向弹出页面的链接,弹出信息仍然在一个页面下: `

  • `@实体公共类影片{ }' 公开课课时{ } 我有两张桌子 表A Id | name | date | Set 表B Id |日期|表A 我想选择TableB. date所在的所有tableA 我想从表格A,表格B中选择*表格B。日期 我想要一个TableA元素列表和一个TableB的少数元素列表 在此输入图像描述 在此输入图像描述

  • 问题内容: 我想使用Criteria API通过从搜索值中获取输入来选择实体。一个文档可以有更多的收件人。收件人有许多子类 如何选择所有带有特定名字的ReciepientAccount的文档?我需要搜索所有子类并将它们与OR连接。有优雅的方法吗? 问候m 问题答案: 以下应该工作:

  • 我已尝试获取以下代码的结果: 在某些情况下,我需要在上面使用“In cause”。我尝试使用获得结果,但对于param:ref它不能在本机查询中工作,但在ejb ql中,我只是得到了以下错误消息: null 我累坏了,大家能给我一些建议吗?thx寻求帮助

  • 问题内容: 在将其标记为重复之前,请先看一下此SQLFiddle。 我有这个架构: 子查询: 结果: 现在,这里最棘手的部分是此查询的结果: 这是: 应该是这样的: 您认为查询中有什么问题? 问题答案: 而不是您可以简单地使用相同。也可以改用。 输出: 看到这个SQLFiddle 编辑: 如果要使用它,则必须使用如下子查询: 看到这个SQLFiddle 编辑2: 除了在外部查询中使用之外,您也可以

  • 我想问一下,是否有人只能从表A中选择值。请参阅下面的hibernate代码 现在,它就像从A、B和C中选择值,而且太多了。 谢谢你吉米