0
回答
Hibenate中,@JoinColumn注解的nullable,insertable,updatable属性是什么作用?
终于搞明白,存储TCO原来是这样算的>>>   

    今天早上就发过了,可能太早了,只有一个站友回答了,现在再发一遍。   

    Java EE的文档里说的是, (Optional) Whether the column is included in SQL INSERT/UPDATE statements generated by the persistence provider.但是我试过了,无论insertable和updatable为true还是false,SQL里还是会带上该外键列,下面是一个例子:

    @OneToMany(targetEntity=OrderItemPO.class, fetch = FetchType.EAGER, cascade = CascadeType.ALL,orphanRemoval=false)
    @JoinColumn(name="order_id", referencedColumnName = "id", nullable = true, insertable = false, updatable = false)
    private List<OrderItemPO> orderItemList = new ArrayList<OrderItemPO>();
    但是插入时,底层的SQL的确带上了外键列,代码如下:

    OrderItemPO itemPO = new OrderItemPO();
    itemPO.setOrderId(2090);
    session.save(itemPO);
    问题出在哪呢?还是我理解错文档的意思?

    希望知道的站友能解惑,先谢了。

举报
顶部