gpt4 book ai didi

mysql - Hibernate - 连接查询

转载 作者:行者123 更新时间:2023-11-29 12:32:46 26 4
gpt4 key购买 nike

我有两门课:

@Entity
public class Tick {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;

@ManyToOne(optional = false)
@JoinColumn(name = "elitesystem_id", referencedColumnName = "id")
private EliteSystem eliteSystem;

private Date createDate;

@ManyToOne(optional = true)
@JoinColumn(name = "commander_id", referencedColumnName = "id")
private Commander commander;

private String address;

@Entity
public class Note {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;

@ManyToOne(optional = true)
@JoinColumn(name = "tick_id", referencedColumnName = "id")
private Tick tick;

private String text;

private Date createDate;

我想选择所有刻度并获取注释(如果有):

    Query query = session.createQuery("select t, n from Note n right join n.tick t where t.commander.name = '123'");
List<Object[]> list = query.list();

这仅返回 Tick 对象。在 1 个查询中获取注释信息的正确方法是什么?我可以将对 Note 的引用放入 Tick 类中,但这听起来不对,因为只有几个注释,所以 Tick 表中的列大部分是空的。

最佳答案

创建一个新类,例如:

public class TickNote {
private Tick tick;
private Note note;

public TickNote(Tick tick,Note note){
this.tick=tick;
this.note=note;

那么您的查询是:

Query query = session.createQuery("select NEW TickNote(t, n) from Note n right join n.tick t where t.commander.name = '123'");
List<TickNote> list = query.list();

关于mysql - Hibernate - 连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27227101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com