EclipseLink JPA很多都有额外的列获取MySQLSyntaxErrorException:未知列''在'字段列表'

时间:2015-04-07 03:27:46

标签: java mysql spring jpa eclipselink

我有3个表:USER(id,name),AD(id,title)和USER_AD(user_id,ad_id,status)。我想要的是在保存新AD时保存USER_AD。

user.java:

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;

@OneToMany(mappedBy="user", cascade = CascadeType.ALL)
private List<UserAd> userAds;

ad.java:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;

@OneToMany(mappedBy = "ad", cascade = CascadeType.ALL)
private List<UserAd> userAds;

UserAd.java:

@Entity
@Table(name="user_ad")
@NamedQuery(name="UserAd.findAll", query="SELECT u FROM UserAd u")
@IdClass(UserAdID.class)
public class UserAd implements Serializable {
    @Id
    private Integer userId;

    @Id
    private Integer adId;

    @ManyToOne
    @JoinColumn(name="AD_ID", referencedColumnName="ID")
    private Ad ad;

    @ManyToOne
    @JoinColumn(name="USER_ID", referencedColumnName="ID")
    private User user;
}

UserAdID.java:

public class UserAdID implements Serializable {
    //default serial version id, required for serializable classes.
    private static final long serialVersionUID = 1L;
    @JoinColumn(name="USER_ID")
    private Integer userId;
    @JoinColumn(name="AD_ID")
    private Integer adId;
}

当我做adRepository.saveAndFlush(ad);时,我会一直得到:&#34; Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'ADID' in 'field list'&#34;。我打印出了sql,它是&#34;

INSERT INTO user_ad (ADID, USERID, ASK_CONTACT, `ORDER`, STATUS, TYPE, AD_ID, USER_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
    bind => [null, null, 0, 0, , seller, 14, 2]

&#34 ;. ADID和USERID来自哪里?我是否定义了AD_ID和USER_ID错误?请帮忙。

0 个答案:

没有答案