9

给定使用 JPA 映射的此类(使用 JPA 1.0 和 Hibernate):

@Entity
public class Foo {

    private int bar;

    /* ... */
}
  1. 如果我尝试加载BAR列设置为 NULL 的记录会发生什么?
  2. 可以指定对应列为NULL时如何设置bar字段吗?

笔记

我知道这不是最佳做法。这个问题更多是出于好奇,并且受到这种情况的启发:

  • 数据库表是一个临时表:添加NOT NULL约束是不切实际的。坏数据是意料之中的,我的代码的重点是在将数据加载到“真实”数据库之前验证、清理和/或拒绝数据。
  • 我对某些字段有可接受的默认值。例如,一个boolean应该默认为的标志false
4

2 回答 2

12

如果列可能包含空值,我宁愿使用对象,因为 Matheus 的想法引入了错误数据。NULL <> 0

于 2013-02-15T11:46:32.570 回答
5
  1. 例外

2.

@Column(name = “bar”, nullable = false, columnDefinition = “bigint(20) default 0″)
private int bar;

它解决了你的问题。

于 2013-02-15T11:43:39.907 回答