引用JPQL中的连接列

阿比(Abhay):

通过查询Select c from Card c join User u on c.userId=u.userId where u.username=':u',我试图根据用户表中可用的用户名为用户获取卡列表。但是,我在运行antlr.SemanticException: could not resolve property: userId of: com.abc.SheridanSportsWAR.entity.Card它时遇到异常。如何UserId在我的Card实体中引用该

Card.java

@Entity
public class Card {
    
    @Id
    @Column(name="CardId")
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer cardId;
    
    @Column(name="CardNumber")
    private String cardNumber;
    
    @Column(name="CardType")
    private String cardType;
    
    @Column(name="ExpiryMonth")
    private String expiryMonth;
    
    @Column(name="ExpiryYear")
    private String expiryYear;
    
    @Column(name="CardHolder")
    private String cardHolder;

    @ManyToOne(cascade = {CascadeType.MERGE, CascadeType.DETACH, CascadeType.PERSIST, CascadeType.REFRESH})
    @JoinColumn(name = "UserId")
    private User userJ;
    
    @OneToMany(mappedBy = "cardJ")
    private List<Purchase> purchases;

User.java

@Entity
public class User {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="UserId")
    private Integer userId;
    
    @Column(name="FirstName")
    private String firstName;
    
    @Column(name="LastName")
    private String lastName;
    
    @Column(name="Email")
    private String email;
    
    @Column(name="Username")
    private String username;
    
    @Column(name="Password")
    private String password;
    
    @Column(name="RoleName")
    private String roleName;
    
    @OneToMany(mappedBy="userJ", cascade= CascadeType.ALL)
    private List<Card> cards;
Andronicus:

错误消息很清楚。userId您的Card实体中没有任何字段创建一个这样的:

@Column(name = "UserId")
private Integer userId;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章