我試圖按JPQL查詢聲明中的字段排序,它看起來應該非常簡單,但我不斷收到編譯器錯誤。不能按JPQL排列ORDERDER BY
我想通過UserClockDate列排序,這是UserTime行的一部分。但每次我嘗試編譯時出現錯誤:
SEVERE: Error in named query: fetchIfUserIsClockedInWithUser org.hibernate.QueryException: could not resolve property: UserClockDate of: models.UserTime [SELECT ut FROM models.UserTime ut WHERE USER_ID = :user ORDER BY ut.UserClockDate DESC]
如果我只拿了ORDER BY它編譯罰款。
這裏的類本身的相關部分:
@NamedQueries({
@NamedQuery(name = "fetchAllUserTimes", query = "SELECT ut FROM UserTime ut"),
@NamedQuery(name = "fetchIfUserIsClockedInWithUser", query = "SELECT ut FROM UserTime ut WHERE USER_ID = :user ORDER BY ut.UserClockDate DESC")
})
@Entity
@Table(name = "userTime")
@Component
public class UserTime implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@Column(name = "UserTimeId")
private int userTimeId;
@ManyToOne
@JoinColumn(name = "USER_ID")
private User user;
@Column(name = "UserClockIn")
@Type(type="org.joda.time.contrib.hibernate.PersistentDateTime")
private DateTime userClockIn;
@Column(name = "UserClockOut")
@Type(type="org.joda.time.contrib.hibernate.PersistentDateTime")
public DateTime userClockOut;
@Column(name = "UserClockDate")
@Type(type="org.joda.time.contrib.hibernate.PersistentDateTime")
public DateTime userClockDate;
你可以給我任何幫助將不勝感激!
爲了澄清,您應該使用實體中字段的名稱而不是表中列的名稱。 – Eelke 2012-08-10 06:59:51
你是對的!我應該抓住這一點,謝謝!我錯誤地試圖使用列名而不是字段名。 – CorayThan 2012-08-10 07:02:45