如何使用customerlookup null
来持久保存salesorder实体 关系是 在销售订单实体@Column(name="customer_id")
private int customerId;
@ManyToOne
@JoinColumn(name="customer_id", referencedColumnName="customer_id", columnDefinition="integer", unique=true, nullable=true, insertable=false, updatable=false)
@NotFound(action=NotFoundAction.IGNORE)
private Customer customerLookup;
客户实体中的
@Id
@Column(name="customer_id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int customerId
我总是有错误:没有给定标识符的行存在 因为customerLookup设置为null。 基本上我需要通过将customer_id和customerlookup设置为null来保存没有客户数据的销售订单(客户表/实体不需要更改)
表格结构
CREATE TABLE `tb_so` (
`so_id` int(11) NOT NULL AUTO_INCREMENT,
`so_code` varchar(45) DEFAULT NULL,
`so_created` datetime DEFAULT NULL,
`shipping_date` datetime DEFAULT NULL,
`customer_id` int(11) DEFAULT '0',
`walk_in_cust_det` varchar(255) DEFAULT NULL,
`so_type` varchar(45) DEFAULT NULL,
`status` varchar(45) DEFAULT NULL,
`created_by` int(11) DEFAULT '0',
`created_date` datetime DEFAULT NULL,
`updated_by` int(11) DEFAULT '0',
`updated_date` datetime DEFAULT NULL,
`remarks` varchar(255) DEFAULT NULL,
PRIMARY KEY (`so_id`)
);
CREATE TABLE `tb_customer` (
`customer_id` int(11) NOT NULL AUTO_INCREMENT,
`customer_name` varchar(45) DEFAULT NULL,
`address` varchar(45) DEFAULT NULL,
`city` varchar(45) DEFAULT NULL,
`phone` varchar(45) DEFAULT NULL,
`npwp_num` varchar(45) DEFAULT NULL,
`price_level_id` int(11) DEFAULT NULL,
`status` varchar(15) DEFAULT NULL,
`remarks` varchar(45) DEFAULT NULL,
`created_by` int(11) DEFAULT '0',
`created_date` datetime DEFAULT NULL,
`updated_by` int(11) DEFAULT '0',
`updated_date` datetime DEFAULT NULL,
PRIMARY KEY (`customer_id`)
);
感谢
答案 0 :(得分:1)
您可以在客户表中以Guest
客户的身份创建客户记录,然后在销售订单中指定此Guest
客户的ID。这很好,因为您也可以获得客户销售的统计数据。
希望这会有所帮助。