小编use*_*038的帖子

当现有值为 null 时,为什么 Hibernate 执行 INSERT 而不是 UPDATE?

问题

在合并我的 Hibernate 实体之一时,我观察到了约束违规。有两个表 A 和 B,其中一个保存元数据,另一个是字符串值的映射。

在表 B 中,(id, key) 上有一个组合主键。

现在,当我合并 A 的现有实例(该实例也有 B 的多个条目)时,Hibernate 将为 B 执行 UPDATE 和 INSERT 语句。

UPDATE 语句没有问题,但无法执行 INSERT 语句,因为它会导致约束冲突,因为 (id, key) 是唯一组合。

我发现只有当 B 中的现有值为 时,才会出现此问题null

我使用的是 Oracle 11、JPA 2.1 和 EJB 3.2。不过,并不完全确定如何确定 Hibernate 版本。

一个例子

让我们假设这些是表 B 的条目:

23, fooKey, foo
23, barKey, bar
23, errorKey, null
Run Code Online (Sandbox Code Playgroud)

现在,当我合并 A (id = 23) 时,将为fooKey和执行 UPDATE 语句barKey。然而,对于errorKey,Hibernate 将改为发出 INSERT 语句并导致约束违规。

所以我的问题是:

  1. 当现有值为 时,为什么 …

java hibernate jpa

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

JavaFX:使用自定义样式表将文本颜色应用于TableCell?

JavaFX:如何使用自定义样式表将文本颜色应用于TableCell?

当我setTextFill()直接在我的CellFactory中使用它时它工作正常,但我想使用外部CSS文件应用自定义样式.我可以证明我的CSS类已应用,因为字体变为粗体.但是,不应用CSS文件的字体颜色.

@Override
protected void updateItem(MyObject item, boolean empty) {
    super.updateItem(item, empty);

    if (null != item) {        
        // EITHER:
        this.getStyleClass().add("styleImportant"); // Does NOT set color.

        // OR:
        this.setTextFill(Color.RED); // Does set color.
    }
    else {
        this.getStyleClass().remove("styleImportant");
    }

}
Run Code Online (Sandbox Code Playgroud)

样式表:

.styleImportant {
    -fx-font-weight: bold; /** Does work. */
    -fx-text-fill: red; /** Does NOT work. */
}
Run Code Online (Sandbox Code Playgroud)

它在某种程度上与CSS选择器的特异性有关,但我没有找到任何有效的设置.


编辑:我设法使用CSS同时应用自定义文本颜色和背景颜色.我的实现现在使用Label包含在a中的一个VBox来使背景颜色填充整个表格单元格.但是,在删除自定义样式时,仍然存在一些未清除背景颜色的问题.

有没有比应用清晰风格更好的解决方案?

colExample.setCellFactory(new Callback<TableColumn<Example, Example>, TableCell<Example, Example>>() {
  @Override
  public TableCell<Example, Example> call(TableColumn<Example, Example> …
Run Code Online (Sandbox Code Playgroud)

css java styles javafx tableview

4
推荐指数
1
解决办法
9821
查看次数

由于缺少类路径引用,使用Eclipse Mars构建的Ant失败

我最近搬到Eclipse Mars并安装了JDK 8u51.我在我的Eclipse中使用了JBoss Tools插件,并有几个Ant文件来构建我的项目.

但是,当我在Ant视图中双击构建文件时,我的项目将不会构建.相反,我收到此错误消息:

The archive: C:/Program%20Files%20(x86)/Eclipse%20Mars/plugins/org.eclipse.swt.win32.win32.x86_64_3.104.0.v20150528-0211.jar which is referenced by the classpath, does not exist.
Run Code Online (Sandbox Code Playgroud)

我检查了文件系统,JAR实际上就在那里.我有什么想法可以解决这个问题?也许它是%20路径名中的spaces()?

不幸的是,我不知道这种依赖来自哪里.在" 外部工具配置"中,它位于" 其他任务和支持"下,但我无法在其中编辑条目.我也找不到任何其他可以配置此引用的对话框.

java eclipse ant classpath

4
推荐指数
1
解决办法
3388
查看次数

显式地将列默认为 NULL

如何使列默认为 NULL显式

我想将 Oracle SQL Developer 中的一列声明为NULL默认值。我知道这个事实,NULL如果我根本没有定义任何默认值,那将是默认值。但是NULL,如果我想明确地这样做,我该如何定义为默认值?

-- 1: Does not work.
ALTER TABLE MY_TABLE ADD (
  MY_COLUMN TIMESTAMP(6) DEFAULT null
);

-- 2: Does not work.
ALTER TABLE MY_TABLE ADD (
  MY_COLUMN TIMESTAMP(6) DEFAULT NULL
);

-- 3: Does not work.
ALTER TABLE MY_TABLE ADD (
  MY_COLUMN TIMESTAMP(6) DEFAULT (null)
);

-- 4: This works.
ALTER TABLE MY_TABLE ADD (
  MY_COLUMN TIMESTAMP(6)
);
Run Code Online (Sandbox Code Playgroud)

在情况 1-3 中,默认值将是字符串(“ NULL”、“ null” 或“ …

sql oracle null default-value oracle-sqldeveloper

4
推荐指数
2
解决办法
2万
查看次数

如何减小网站的整体字体大小?

有没有办法减少网站的整体字体大小?假设我们有一个 WordPress 主题(例如Highwind),如何在不影响任何其他属性的情况下减小所有页面元素的字体大小?

我尝试设置body { font-size: 1.0em; },但这也会缩小标题的宽度。如果我使用 Opera 的缩放选项将网站缩放至 90%,则页面看起来很完美,正是我想要的样子。

所以我想知道,减少网站上所有字体大小的最简单方法是什么,而无需单独调整每个 CSS 类。主题使用em字体大小,所以我想一定有一个准确的解决方案。不过,我不明白为什么标题也会缩小。

css wordpress fonts themes

3
推荐指数
1
解决办法
7801
查看次数

具有多行,背景颜色和居中文本的JavaFX表

在JavaFX TableView中,我该怎么做

  • 创建多行列?
  • 中心内容?
  • 并为每条(整条)线设置背景颜色?

我设法使用自定义创建多行列CellFactory.我也知道setAlignment(Pos.CENTER)setTextAlignment(TextAlignment.CENTER)集中文本.但是,我的示例应用程序中的文本没有按行正确居中.此外,我没有设法在Text对象上设置背景颜色.现在我的方法是Pane为每一行添加一个,这很好.但是如何Pane填充色谱柱的整个宽度和1/3高度呢?

作为一个起点,这就是我期望代码的方式(但是,我知道它不是我想要的):

    multiCol.setCellFactory(new Callback<TableColumn<Person, Person>, TableCell<Person, Person>>() {
      @Override public TableCell<Person, Person> call(TableColumn<Person, Person> multiCol) {
        return new TableCell<Person, Person>() {
           private Group grp = null;

           @Override public void updateItem(final Person person, boolean empty) {
              super.updateItem(person, empty);

              this.setAlignment(Pos.CENTER);

              if (!isEmpty()) {
                 Text text = new Text(person.getFirstName());
                 text.setX(0);
                 text.setY(0);
                 text.setTextAlignment(TextAlignment.CENTER); // Center text?

                 Pane pane = new Pane();
                 pane.setStyle("-fx-background-color: #66BB66;");
                 pane.setLayoutX(0);
                 pane.setLayoutY(0); …
Run Code Online (Sandbox Code Playgroud)

java javafx multiline tableview

3
推荐指数
1
解决办法
2588
查看次数

当react-native模式显示时,如何隐藏statusBar?

状态栏的屏幕截图

当显示模态窗口时,我想隐藏状态栏.

我的设置如下,但它不会按预期工作:

<StatusBar animated={true} hidden={true}  translucent={true}>
Run Code Online (Sandbox Code Playgroud)

react-native

3
推荐指数
2
解决办法
5640
查看次数

比较Java中的Date对象

我最近观察到一个奇怪的事情,比较两个Java Date对象与equals().请注意,this.getDate()和other.getDate()都将在我的应用程序中返回Java Date对象.

码:

logger.debug("Date 1: " + this.getDate().toString());
logger.debug("Date 1: " + this.getDate().getTime());

logger.debug("Date 2: " + other.getDate().toString());
logger.debug("Date 2: " + other.getDate().getTime());

logger.debug("Dates are equal: " + this.getDate().equals(other.getDate()));
logger.debug("Dates match in comparison: " + (this.getDate().compareTo(other.getDate()) == 0));
Run Code Online (Sandbox Code Playgroud)

输出:(添加空行以提高可读性)

Date 1: 2014-07-28 00:00:00.0
Date 1: 1406498400000

Date 2: Mon Jul 28 00:00:00 CEST 2014
Date 2: 1406498400000

Dates are equal: false
Dates match in comparison: true
Run Code Online (Sandbox Code Playgroud)

我有两件事没有得到:

  1. 为什么equals()返回false?
  2. 为什么toString()的返回值会改变其格式?

我检查了Date.equals()的文档,其中说:

比较两个相等的日期.当且仅当参数不为null并且是一个Date对象时,结果才为真,该对象表示与此对象相同的时间点,以毫秒为单位.

因此,当且仅当getTime方法为两者返回相同的long值时,两个Date对象才相等.

我还看了一下Date.equals()的实现:

public boolean …
Run Code Online (Sandbox Code Playgroud)

java date equals compareto

2
推荐指数
1
解决办法
2215
查看次数

如何使用 spring restdocs 记录包含 JSON 对象的请求正文

我正在使用 spring boot 2 来实现 REST API 服务,并想用 restdocs 记录它。

终点

POST /api/tags
Run Code Online (Sandbox Code Playgroud)

带有请求正文

{"name":"Some Tag", "description":"This is Some Tag"}
Run Code Online (Sandbox Code Playgroud)

用于添加创建新标签。我已经查看了 restdocs 文档,但仍然找不到记录请求正文的 JSON 字段的方法,任何人都可以帮我填写缺少的部分“......”。

TagRequest request = new TagRequest();
request.setName("Some Tag");
request.setDescription("This is Some Tag");
client.post().uri("/api/tags").body(BodyInserters.fromObject(request)).exchange()
        .expectStatus().isOk().expectBody(Integer.class)
        .consumeWith(document("add-tag", ...... )));
Run Code Online (Sandbox Code Playgroud)

spring-boot spring-restdocs

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

导入错误:执行 Python 脚本时没有名为 cv2 的模块

我需要执行一个 Python 应用程序,但出现此错误:

回溯(最近一次调用):文件“dataset.py”,第 8 行,在 import cv2 ImportError: No module named cv2

我遵循了96 board 中的人脸检测概念,但是当我像这样运行脚本时,我不断收到上述错误消息:

sudo python dataset.py
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
1
解决办法
3525
查看次数