JPA - 如果AccessType是“property”,如何在查询中引用属性?

时间:2015-08-21 15:31:39

标签: java jpa

我希望每个getter方法都有一个JPA调用属性的实体,而不是直接字段访问。所以我使用@Access(AccessType.PROPERTY)。到目前为止,一切都很好。但是当我使用引用属性指定NamedQuery时,会显示以下编译器错误:

Multiple markers at this line
- The state field path 'u.password' cannot be resolved to a valid type.
- The state field path 'u.login' cannot be resolved to a valid type.#

代码是:

@Entity
@Access(AccessType.PROPERTY)
@NamedQuery(name="User.validateLogin", query="SELECT u FROM User u WHERE u.login = :login AND u.password = :password")
public class User implements Serializable {

有没有办法使用带有属性引用的查询将AccessType设置为PROPERTY AND

1 个答案:

答案 0 :(得分:0)

我找到了答案。如果使用默认值(AccessType.FIELD),则会自动执行一些操作(例如,您可以使用查询中的属性)。

如果您使用 AccessType.PROPERTY ,那么您必须在getter方法前设置Annoation @Basic