【发布时间】:2013-07-06 11:05:18
【问题描述】:
我有一个这样的实体:
@Entity
@Table(name = "PERSON_TB")
public class Person implements Serializable {
private static final long serialVersionUID = 32423423432434;
@Id
@Column(name = "ID")
private Long personId;
@Id
@Column(name = "VALUE")
private String value;
@Column(name = "NAME")
private String name;
@Transient
Address address;
//getters / setters
}
这是我创建实体的代码:
public Person createPerson( long id, String name, String value ) {
Person p = new Person();
p.setId(id);
p.setName(name);
p.setValue(value);
return p;
}
用不同的方法:
personCrudSvc.create(createPerson(192L, "Joe", "xyz");
这是错误:
java.sql.SQLException: Attempt to insert null into a non-nullable column: column: VALUE
table: PERSON_TB in statement [insert into PERSON_TB (NAME, ID) values (?, ?)]
不确定这是否与此错误有关:
我还有另外两个这样创建的表,这些都很好。
【问题讨论】:
-
很明显,我可以看到,Hibernate 将错误的查询推送到数据库。插入 PERSON_TB (NAME, ID) 值 (?, ?) 应该插入 PERSON_TB (NAME, ID, VALUE) 值 (?, ?, ?)
标签: java hibernate jpa entity field