1
回答
Hibenate中,@JoinColumn注解的nullable,insertable,updatable属性是什么作用?
华为云实践训练营,热门技术免费实践!>>>   

    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);
    问题出在哪呢?还是我理解错文档的意思?

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

举报
Benjaman
发帖于1年前 1回/1K+阅
顶部