在合并我的 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 语句并导致约束违规。
所以我的问题是:
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) 我最近搬到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()?
不幸的是,我不知道这种依赖来自哪里.在" 外部工具配置"中,它位于" 其他任务和支持"下,但我无法在其中编辑条目.我也找不到任何其他可以配置此引用的对话框.
如何使列默认为 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” 或“ …
有没有办法减少网站的整体字体大小?假设我们有一个 WordPress 主题(例如Highwind),如何在不影响任何其他属性的情况下减小所有页面元素的字体大小?
我尝试设置body { font-size: 1.0em; },但这也会缩小标题的宽度。如果我使用 Opera 的缩放选项将网站缩放至 90%,则页面看起来很完美,正是我想要的样子。
所以我想知道,减少网站上所有字体大小的最简单方法是什么,而无需单独调整每个 CSS 类。主题使用em字体大小,所以我想一定有一个准确的解决方案。不过,我不明白为什么标题也会缩小。
在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) 
当显示模态窗口时,我想隐藏状态栏.
我的设置如下,但它不会按预期工作:
<StatusBar animated={true} hidden={true} translucent={true}>
Run Code Online (Sandbox Code Playgroud) 我最近观察到一个奇怪的事情,比较两个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)
我有两件事没有得到:
我检查了Date.equals()的文档,其中说:
比较两个相等的日期.当且仅当参数不为null并且是一个Date对象时,结果才为真,该对象表示与此对象相同的时间点,以毫秒为单位.
因此,当且仅当getTime方法为两者返回相同的long值时,两个Date对象才相等.
我还看了一下Date.equals()的实现:
public boolean …Run Code Online (Sandbox Code Playgroud) 我正在使用 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) 我需要执行一个 Python 应用程序,但出现此错误:
回溯(最近一次调用):文件“dataset.py”,第 8 行,在 import cv2 ImportError: No module named cv2
我遵循了96 board 中的人脸检测概念,但是当我像这样运行脚本时,我不断收到上述错误消息:
sudo python dataset.py
Run Code Online (Sandbox Code Playgroud)