Java Hibernate继承、集合和@OrderedBy超类属性生成MySQL语法错误
我正在使用Hibernate 3.6.1映射三个实体Java Hibernate继承、集合和@OrderedBy超类属性生成MySQL语法错误,java,mysql,hibernate,inheritance,Java,Mysql,Hibernate,Inheritance,我正在使用Hibernate 3.6.1映射三个实体 @Entity @Inheritance(strategy = InheritanceType.JOINED) public class Entry { private Long id; private Date publishedAt; @Id public getId() {...} ... } @Entity public class Category { private Long id;
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Entry {
private Long id;
private Date publishedAt;
@Id
public getId() {...}
...
}
@Entity
public class Category {
private Long id;
List<Podcast> podcasts;
@Id
public getId() {...}
@OneToMany(mappedBy = "category", cascade = {CascadeType.ALL}, fetch = FetchType.EAGER)
@OrderBy("publishedAt")
public List<Podcast> getPodcasts() {
return podcasts;
}
}
如果我试图获取一个类别
实例,我会得到一个异常
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'podcasts0_.Entry.publishedAt' in 'order clause'
是什么导致了这种异常?这个映射有什么问题 您可以尝试注释。请参阅hibernate文档的一节 这是由以下错误引起的: 作为一种解决方法,您可以在
podcast
上删除@OrderBy
和fetch=FetchType.EAGER
,并使用以下查询而不是get()
加载类别:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'podcasts0_.Entry.publishedAt' in 'order clause'
SELECT DISTINCT c
FROM Category c LEFT JOIN FETCH c.podcasts p
WHERE c.id = ?
ORDER BY p.publishedAt