小编Sha*_*arg的帖子

是否可以将枚举属性的空值存储到数据库中?

我试图使用JPA TopLink将Java中实体的枚举属性的null值存储到Oracle数据库.代码执行时没有异常或警告,但实体未存储在数据库中.

该实体定义如下:

@Entity
public class LetterDoc {
    ...
    @Column(name = "delivery_type", columnDefinition = "VARCHAR2(20)", nullable = true)
    @Enumerated(EnumType.STRING)
    private DocDeliveryTypeEnum deliveryType;
    ...
}
Run Code Online (Sandbox Code Playgroud)

Enum类DocDeliveryTypeEnum只有必需的值.

public enum DocDeliveryTypeEnum {
    NORMAL,
    RECOMMENDED,
    ACKNOWLEDGEMENT
}  
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我有实体的实例,其中deliveryType是sence并且是必需的.但是,在某些情况下,deliveryType是无关紧要的,我想将其保留为null.我不想设置默认值,因为这种情况没有足够的值.

实体实例的值设置为null,但是当我尝试持久化并刷新数据库中的实例时,它只是没有存储,尽管该列被定义为启用了NULL值的VARCHAR2(20).

情况是这样的:

LetterDoc let = new LetterDoc();
// settery ostatnich atributu
let.setDeliveryType(null);
try {
    emptyDocDAO.persist(let);
    emptyDocDAO.flush();
} catch (Exception e) {
    // no exception is really catched :(
    log.error(e);
}
// here I have …
Run Code Online (Sandbox Code Playgroud)

java database oracle enums jpa

6
推荐指数
1
解决办法
4726
查看次数

仅合并 git 中选定的更改

我提交了一个文本文件并将其推送到主分支。我的同事从主分支中创建了一个单独的分支,并对文件进行了一些更改 - 他对文本进行了修订。更改是在单个提交和单个文件中进行的。

现在,我想将他的一些更改合并到 master 分支中的原始文件中。但!我不想接受一切,只想接受一些改变。

更改是在同一文件的不同行上进行的:修订版中更改了一些行,添加了一些行,删除了一些行。我怎样才能做到这一点?

如果我正确理解 git,将修订分支简单合并到 master 将不会检测到冲突,因为我没有在 master 分支中进行任何更改。此外,合并只会应用分支/提交中所做的所有更改。但是,我只想应用在线(比方说)#20、50、69 所做的更改。我想忽略其他更改,因为我不同意它们。

如何使 git 在所有更改的文件上产生冲突,以便我能够选择是否接受更改?我需要一些互动方式。

例如,在 MS Word 中,可以跟踪更改。然后,每个更改都可以被接受(采用新版本并删除旧版本)或拒绝(保留旧版本并丢弃更改)。然后,更改不再突出显示。

我正在 MS Windows 10 上使用 TortoiseGit 应用程序,在 git 版本 1.9.5.msysgit.1 上运行。因此,如果有一种使用客户端的方法,我会更喜欢它。

git git-merge tortoisegit

5
推荐指数
1
解决办法
3229
查看次数

标签 统计

database ×1

enums ×1

git ×1

git-merge ×1

java ×1

jpa ×1

oracle ×1

tortoisegit ×1