Java Hibernate继承、集合和@OrderedBy超类属性生成MySQL语法错误

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;

我正在使用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; 

   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