Hibernate 用于根据表的外键筛选表的NamedQuery

Hibernate 用于根据表的外键筛选表的NamedQuery,hibernate,jpa,named-query,Hibernate,Jpa,Named Query,我有下面两张桌子 @Entity @Table(name = "userRequests") @NamedQueries({ @NamedQuery( name = "User.getByFK", query = "SELECT u FROM User u WHERE u.FK_ID =:FK_ID") }) public class UserR implements Comparable<User>, Serializ

我有下面两张桌子

@Entity
@Table(name = "userRequests")
@NamedQueries({

    @NamedQuery(
            name = "User.getByFK",
            query = "SELECT  u FROM User u WHERE u.FK_ID =:FK_ID")
})


public class UserR implements Comparable<User>, Serializable {

    @Id
    @JsonProperty
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    long id;

    @JsonProperty
    @OneToOne(cascade= CascadeType.ALL)
    @JoinColumn(name="FK_ID")
    FK fk;
}
@实体
@表(name=“userRequests”)
@命名查询({
@命名查询(
name=“User.getByFK”,
query=“从用户u中选择u,其中u.FK\u ID=:FK\u ID”)
})
公共类UserR实现了可比较的、可序列化的{
@身份证
@JsonProperty
@GeneratedValue(策略=GenerationType.IDENTITY)
长id;
@JsonProperty
@OneToOne(级联=级联类型.ALL)
@JoinColumn(name=“FK_ID”)
FK-FK;
}
这给了我一个错误“无法解析属性:FK_ID”

我如何才能访问此字段


如果在用户对象中创建FK_ID文件时出现重复映射异常,则会出现该错误,因为UserR类中没有文件名FK_ID 您需要使用连接fk获取文件

试着像这样使用它

 @NamedQueries({
    @NamedQuery(
            name = "User.getByFK",
            query = "SELECT  u FROM User u WHERE u.fk.FK_ID =:FK_ID")
})

您得到该错误是因为UserR类中没有文件名FK_ID 您需要使用连接fk获取文件

试着像这样使用它

 @NamedQueries({
    @NamedQuery(
            name = "User.getByFK",
            query = "SELECT  u FROM User u WHERE u.fk.FK_ID =:FK_ID")
})

它给出该消息是因为没有名为“FK_ID”的字段/属性。有一个字段“FK”。“从用户u中选择u,其中u.FK=:FK”更有意义,或者像所有JPQL引用一样连接到FK的id,告诉您它如何给出该消息,因为没有名为“FK_id”的字段/属性。有一个字段“FK”。“从用户u中选择u,其中u.FK=:FK”更有意义,或者像所有JPQL引用告诉您的那样,连接到FK的id