我有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错误?请帮忙。