Mysql Hibernate-Join查询
我有两门课:Mysql Hibernate-Join查询,mysql,spring,hibernate,join,Mysql,Spring,Hibernate,Join,我有两门课: @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 cre
@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;
及
我想选择所有记号并获取笔记(如果有):
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();
Query Query=session.createQuery(“从注释n中选择t,n右连接n.tick t,其中t.commander.name='123');
List=query.List();
这只返回Tick对象。在一次查询中获取注释信息的正确方法是什么?
我可以在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();
Query Query=session.createQuery(“从Note n right join n.tick t中选择新的TickNote(t,n),其中t.commander.name='123');
List=query.List();
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();