HQL语句 Path expected for join!错误

HQL语句

select  b from SmallNewsClass s left join s. belongBigNewsClass b

起先我以为s. belongBigNewsClass  中的belongBigNewsClass 对应的是数据库中的属性名或者是表名

结果出了如下错误

其实s. belongBigNewsClass  对应的是实体s的属性名

对于使用的两个实体类代码如下:

BigNewsClass.java:

@Entity
public class BigNewsClass {
	@Id
	@Column(columnDefinition="varchar(32) COMMENT 'uuid主键'")
	private String uuid;
	@Column(columnDefinition="int COMMENT 'ID'",unique=true)
	private int id;	
	@Column(columnDefinition="varchar(50) COMMENT '大类名称'",unique=true)
	private String bigNewsClassName;// 大类名称
	<strong><span style="color:#ff0000;">@OneToMany(targetEntity=SmallNewsClass.class,mappedBy="bigNewsClass")
	private Set<SmallNewsClass> smallNewsClass;</span></strong>
//	get and set
SmallNewsClass.java:

	@Id
	@Column(columnDefinition="varchar(32) COMMENT 'SmallNewsClass uuid主键'")
	private String uuid;
	private int id;
	<span style="color:#ff0000;"><strong>@ManyToOne(targetEntity=BigNewsClass.class)
	@JoinColumn(name="belongBigNewsClass",referencedColumnName="uuid",nullable=false)
	private BigNewsClass bigNewsClass;// 所属大类</strong></span>
	@Column(columnDefinition="varchar(50) COMMENT '小类名称'")
	private String smallNewsClassName;// 小类名称
	@OneToMany(targetEntity=NewsInfo.class,mappedBy="smallNewsClass")
	private Set<NewsInfo> newsInfo;
	//get and set

可以看到在SmallNewsClass类中有一个字段bigNewsClass指定小类所属的大类。而数据库中则将它指定为对应大类主键uuid的数据项。

所以应该将s. belongBigNewsClass改为s. bigNewsClass就行

你在小类中指定的字段名是什么那么“点号”后面就跟什么



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值