java.sql.BatchUpdateException:Field 'thirdAssetses-assetsId'

问题描述:

java.sql.BatchUpdateException:Field 'thirdAssetses_assetsId' doesn't have a default value
我建了一个合同表,一个账单表,在类中合同表和账单表是一对多单向关系,合同是一的一方,账单时多的一方,有一个外关联表,当插入一条数据的时候一切正常,当插入第二条数据的时候就会报,上面的异常.说我关联表中的对应账单的Id的字段没有设值.
怎么回事?
在合同类中
private Set<Assets> firstAssetses = new HashSet<Assets>();
private Set<Assets> secondAssetses = new HashSet<Assets>();
private Set<Assets> thirdAssetses = new HashSet<Assets>();
\x05@OneToMany
\x05public Set<Assets> getThirdAssetses() {
\x05\x05return thirdAssetses;
\x05}
\x05public void setThirdAssetses(Set<Assets> thirdAssetses) {
\x05\x05this.thirdAssetses = thirdAssetses;
\x05}
\x05@OneToMany
\x05public Set<Assets> getFirstAssetses() {
\x05\x05return firstAssetses;
\x05}
\x05public void setFirstAssetses(Set<Assets> firstAssetses) {
\x05\x05this.firstAssetses = firstAssetses;
\x05}
\x05@OneToMany
\x05public Set<Assets> getSecondAssetses() {
\x05\x05return secondAssetses;
\x05}
\x05public void setSecondAssetses(Set<Assets> secondAssetses) {
\x05\x05this.secondAssetses = secondAssetses;
\x05}
在账单类中没设映射,只有几个字段,
private String assetsId;
private Assurer assurer;
private int sum;
private String quality;
然后就是添加信息了,
contract.setFirstAssetses(assets);.
contractService.addContract(contract);
1个回答 分类:综合 2014-10-23

问题解答:

我来补答
能具体的说一下你是怎么来添加的吗?
是事务还是什么?能显示一下代码吗?
再问: 是在事务中添加的不错。。可是怎么会出现这样的错呢?? 我的thirdAssetses明明有值的啊,在添加之前还能输出数据的。。
再答: 嗯,这样看不出来呀
再问: BeanFactory beanFactory = new ClassPathXmlApplicationContext("beans.xml"); ContractService contractService = (ContractService)beanFactory.getBean("contractService"); AssurerService assurerService_1 = (AssurerService)beanFactory.getBean("assurerService"); Assurer fassurer = new Assurer(); fassurer.setUsername("qiaogr136"); Assurer sassurer = new Assurer(); sassurer.setUsername("qiaogr137");
再答: 咽,你自己检查一下看看数据库中的字段类型和你JAVA中的字段类型是否一致呀
 
 
展开全文阅读
剩余:2000
上一页:合外力做功,
也许感兴趣的知识