【发布时间】:2014-06-30 10:33:57
【问题描述】:
我使用休眠和弹簧数据。有两个具有多对多关系的表。
@Entity
@Table(name = "FirstEntity")
public class FirstEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "first_entity_id")
private Long id;
@Column(name = "first_entiry_name")
private String name;
/* getters and setters are below*/
}
@Entity
@Table(name = "SecondEntity")
public class SecondEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "second_entity_id")
private Long id;
@Column(name = "second_entiry_name")
private String name;
@Column(name = "second_entiry_desc")
private String description;
/* getters and setters are below*/
}
以及用于交叉引用表的实体。
@Entity
@Table(name = "FirstSecondEntity")
public class FirstSecondEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "first_second_entity_id")
private Long id;
@Column(name = "first_entity_id")
private Long firstEntityId;
@Column(name = "second_entity_id")
private Long secondEntityId;
/* getters and setters are below*/
}
我需要这样的选择
SELECT FirstEntity.name, SecondEntity.name, SecondEntity.description FROM SecondEntity INNER JOIN FirstSecondEntity ON SecondEntity.id = FirstSecondEntity.secondEntityId INNER JOIN User ON FirstEntity.id = FirstSecondEntity.firstEntityId
即我需要来自交叉引用表的所有记录,而不是 ids,而是来自实体的实际信息。 将此查询插入到我的 CrudRepository 扩展类中的 @Query 注释中不起作用,因为
ERROR [main][org.hibernate.hql.internal.ast.ErrorCounter] Path expected for join!
所以我需要你的帮助。
【问题讨论】: