0
@Entity
@Table(name = "t_wday")
@IdClass(DayPk.class)
public class Day {
@Id
private Date id;
..
..
}
@Embeddable
public class DayPk {
@Column(name = "idwday")
private Date id;
...
... other key properties
...
}
@Entity
@Table(name = "t_assigned")
@IdClass(AssignedPk.class)
public class Assigned {
@Id
@ManyToOne
private Day day;
...
...
}
@Embeddable
public class AssignedPk {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name = "t_wday_idwday", referencedColumnName = "idwday"),
@JoinColumn(name = "t_user_iduser", referencedColumnName = "t_user_iduser")
})
private Day day;
...
... other key properties
...
}
当我尝试创建查询无法解析属性的Hibernate查询
getSession().createQuery("FROM Day as day WHERE day.user = :user YEAR(day.id) = :year")
它的工作原理,但是当我试图像
getSession().createQuery("FROM Assigned as assig WHERE YEAR(assig.day.id) = :year")
创建查询我有一个例外
could not resolve property: day.id of: com.db.entity.Assigned .....
但如果我重新命名DayPk的字段ID和字段在实体日至idwday查询是工作
请人帮忙
看来它依赖于'@ IdClass'注解! – boomz 2013-04-04 13:07:52
您是否尝试从Assigned实体中删除@IdClass(AssignedPk.class)注释?即使它不是解决方案,当前的代码也是不正确的。 – kostja 2013-04-04 13:09:03