我的实体有一个问题,它在DB中有一个映射到INT类型的字段。问题是,当我将字段更新为某个值(例如1337)时,它正确地保留在数据库中,但当我将其设置为零时却不是这样。
更具体一点:
有没有办法解决它?
一些代码,更新的代码:
@Stateless
public class AClass {
@EJB
ARepository arepository;
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void produceOutgoingMessage(int idOfOutputToProduce) {
AnEntity anEntity = arepository.find(idOfOutputToProduce);
//...
doSomething(anEntity);
}
private void doSomething(AnEntity anEntity) {
//...
anEntity.setRecord(0); // record stays NULL in DB
anEntity.setRecord(1337); // record is correctly set in DB
}
}
实体:
@Entity
@Table(name = "MY_TABLE")
public class AnEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "C_I_IDF")
private Long id;
@Column(name = "N_I_RECORD")
private int record;
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public int getRecord() {
return record;
}
public void setRecord(int record) {
this.record = record;
}
}
答案 0 :(得分:0)
" int
"永远不应将字段配置为允许数据库中的NULL
。这可能是问题的原因。修复它,它应该工作。
如果没有,则报告OpenJPA
中的错误。