Reputation: 15
Entity class 1
@Entity
@Table(name = "TICKETS")
public class Ticket {
....
@Column(name = "MERCHANT_NBR")
private String merchant_nbr;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "merchant_nbr", nullable = false)
private Merchant merchant;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name ="merchantNBR", nullable = false)
private merchantDetails merchantDetails;
Entity class 2
@Entity
@Table(name="MERCHANT_DETAILS")
public class merchantDetails {
@Id
@Column(name="MERCHANT_NBR")
private String merchantNBR;
@OneToMany(fetch = FetchType.LAZY)
private Set<Ticket> ticket;
error its giving...invalid column 'merchantNBR'.But I have a column by that name.
com.microsoft.sqlserver.jdbc.SQLServerException: Invalid column name 'merchantNBR'.
Upvotes: 0
Views: 4358
Reputation: 1358
so it's a join column not a column and for that you have to use the proper annotation for joining two entities which is @JoinColumn
see this it may be helpful
@joinColumn(name = "MERCHANT_NBR" ,referencedColumnName="merchantNBR")
private String merchant_nbr;
here i supposed that you've changed the column name in entitie class 2 from
@Column(name="MERCHANT_NBR") to `@Column(name="merchantNBR")`
Upvotes: 1