I have got two tables orders and orderlines. When i try to join two columns,i am getting this exception.
org.hibernate.MappingException: Unable to find column with logical name: order_id in org.hibernate.mapping.Table(orders) and its related supertables and secondary tables
My entity classes : Order.java
@Entity
@Table(name="orders")
public class Order {
@Id
@GeneratedValue
@Column(name="id")
private int id;
@Column(name="firstname")
private String firstName;
@OneToMany(targetEntity=OrderLine.class,
cascade = CascadeType.ALL,
fetch = FetchType.LAZY)
@JoinTable(
name="orderlines",
joinColumns = {@JoinColumn(table = "orderlines", name="FK_orders_orders",
referencedColumnName = "order_id")},
inverseJoinColumns={@JoinColumn(table = "orders", name="FK_orders_orders",
referencedColumnName = "id")}
)
private Set<OrderLine> orderLines;
OrderLine.java
@Entity
@Table(name="orderlines")
public class OrderLine {
@Id
@ManyToOne(targetEntity = Order.class,
cascade = CascadeType.ALL,
fetch = FetchType.LAZY)
@JoinTable(
name="orders",
joinColumns={@JoinColumn(table="orders", name="FK_orders_orders",
referencedColumnName="id")},
inverseJoinColumns={@JoinColumn(table="orderlines", name="FK_orders_orders",
referencedColumnName="order_id")})
private Order order;
@ManyToOne(targetEntity = Product.class,
cascade = CascadeType.ALL,
fetch = FetchType.LAZY)
@JoinTable(
name="products",
joinColumns=@JoinColumn(name="product_id")
)
private Product product;
My Tables:
orders
CREATE TABLE `orders` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`firstname` VARCHAR(50) NOT NULL,
);
orderlines
CREATE TABLE `orderlines` (
orderLineId int(11) NOT NULL auto_increment,
`orderId` INT NOT NULL,
`product_id` INT NOT NULL,
`quantity` INT NOT NULL,
`product_price` DECIMAL(19,2) NOT NULL,
`total_price` DECIMAL(19,2) NOT NULL,
PRIMARY KEY(orderLineId),
KEY `FK_orders_orders` (`orderId`),
CONSTRAINT `FK_orders_orders` FOREIGN KEY(`orderId`) REFERENCES `orders`(`id`),
KEY `FK_orders_products`(`product_id`),
CONSTRAINT `FK_orders_products` FOREIGN KEY (`product_id`) REFERENCES `products`(`id`)
);
Please help me to solve this.