关于hibernate 一对多 添加记录的有关问题

关于hibernate 一对多 添加记录的问题
情况是这样的:现在有一张客户表 和一张订单表,一个客户可以下多个订单
数据库里的表结构简化如下:
客户表
客户id   客户编号   客户名称

订单表
订单id   客户id    商品名称   商品数量

domain类如下:
client类

@Entity
@Table(name = "client")
public class Client {
private int clientId;
private String clientCode;
        private String shortName;
private Set<InitOrder> initOrders;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int getClientId() {
return clientId;
}

public void setClientId(int clientId) {
this.clientId = clientId;
}

public String getClientCode() {
return clientCode;
}

public void setClientCode(String clientCode) {
this.clientCode = clientCode;
}

public String getShortName() {
return shortName;
}

public void setShortName(String shortName) {
this.shortName = shortName;
}

@OneToMany(mappedBy = "client")
public Set<InitOrder> getInitOrders() {
return initOrders;
}

public void setInitOrders(Set<InitOrder> initOrders) {
this.initOrders = initOrders;
}

}


订单类:

@Entity
@Table(name = "initOrder")
public class InitOrder {
private int orderId;
private Client client;
        private String orderSp;
private Integer quantity;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int getOrderId() {
return orderId;
}

public void setOrderId(int orderId) {
this.orderId = orderId;
}

@ManyToOne
@JoinColumn(name = "clientId")
public Client getClient() {
return client;
}

public void setClient(Client client) {
this.client = client;
}
public String getOrderSp() {
return orderSp;
}

public void setOrderSp(String orderSp) {
this.orderSp = orderSp;
}

public Integer getQuantity() {
return quantity;
}

public void setQuantity(Integer quantity) {
this.quantity = quantity;
}

}

订单类属性里面是一个客户对象
如果我现在要往订单表里添加一条记录,该怎么做呢 ,难道要先new一个订单对象order,再new一个客户对象client,然后给client的id赋值client.setClientId(1) ,然后order.setClient(client) , 。。最后再session.save(order) 。。要这样弄吗
我是菜鸟。。求好心的哥哥姐姐解答。。。关于hibernate 一对多 添加记录的有关问题
------解决思路----------------------
你已经将client的主键生成策略是strategy = GenerationType.IDENTITY,就没必要自己调用setClientId()去设置了
如下可参考:

Client client=new Client();
client.setClientCode("ClientCode");
client.setShortName("ShortName");
InitOrder order=new InitOrder();
order.setClient(client);
order.setOrderSp("OrderSp");
order.setQuantity(1000);
session.save(client);//这里是没有设置InitOrder 类中@ManyToOne的cascade属性,所以要手动保存client和order
session.save(order);
session.getTransaction().commit();

PS:如果将InitOrder 类中@ManyToOne的cascade属性设置成CascadeType.ALL或者CascadeType.PERSIST ,那么只需要进行save(order)操作就行了