hibernater Field 'address_id' doesn't have a default value

本文解决了在使用Hibernate进行数据库表关联映射时遇到的Field 'address_id' doesn't have a default value错误。通过调整Hibernate的配置文件,将更新策略从update更改为create,成功解决了由于旧表结构遗留问题引发的异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天再用N-1 有链接表是关联两张表是

报了一个hibernater  Field 'address_id' doesn't have a default value、

百度了一下

http://blog.youkuaiyun.com/zhouyingge1104/article/details/26271607

,可能还有其他原因



   
    @ManyToOne(targetEntity=Address_test.class,cascade=CascadeType.ALL)
    //@JoinColumn(name="address_id",nullable=false)   //映射外键     单方向映射

    @JoinTable(name="person_address",  //连接表的名字
               joinColumns=@JoinColumn(name="person_id",unique=true),    //主表    n-1关联
               inverseJoinColumns=@JoinColumn(name="address_id"))    //从表
    private Address_test address;


因为之前做了没有表关联的,所以导致,数据库中已经存在表

所以,但是我的xml配置文件是update ,是以前的表对现在表的影响,导致 只需要将update改为create ,就行了,如果比数据有要求,则在对create,改为update

其实之间的操作,就是删除表的过程

<property name="hibernate.hbm2ddl.auto">update</property>   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值