我有这样定义的表:
@Entity
public class Shipment implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne(optional=true)
@JoinColumn(name="SENDER_ID",referencedColumnName="CUSTOMER_ID", nullable=true)
private Customer sender;
@ManyToOne(optional=true)
// @Column(nullable=true)
@JoinColumn(name="TARRIF_ID",referencedColumnName="TARRIF_ID",nullable=true)
private Tarrif tarrif;
@ManyToOne(optional=true)
// @Column(nullable=true)
@JoinColumn(name="RECIPIENT_ID",referencedColumnName="CUSTOMER_ID",nullable=true)
private Customer recipient;
@ManyToOne(optional=true)
// @Column(nullable=true)
@JoinColumn(name="COURIER_ID",referencedColumnName="COURIER_ID",nullable=true)
private Courier courier;
....
}
我想删除与货件相关联的客户/快递员/关税对象。所以基本上,我希望能够将外键设置为 NULL。
虽然 nullable 设置为 true,但 glassfish 表示无法完成,因为外键约束被违反。有任何想法吗 ?
我正在使用 javaee 6、javax.persistence.api 1.0.2、glassfish 3+ 和 java derby db。