我的问题是关于这种查询:
select * from SOMETABLE where SOMEFIELD in ('STRING1','STRING2');
Run Code Online (Sandbox Code Playgroud)
以前的代码在Sql Developer中工作正常.相同的静态查询也可以正常工作,并返回一些结果;
Query nativeQuery = em.createNativeQuery(thePreviousQuery,new someResultSet());
return nativeQuery.getResultList();
Run Code Online (Sandbox Code Playgroud)
但是当我尝试参数化时,我遇到了一个问题.
final String parameterizedQuery = "select * from SOMETABLE where SOMEFIELD in (?selectedValues)";
Query nativeQuery = em.createNativeQuery(parameterizedQuery ,new someResultSet());
nativeQuery.setParameter("selectedValues","'STRING1','STRING2'");
return nativeQuery.getResultList();
Run Code Online (Sandbox Code Playgroud)
我没有结果(但在控制台没有错误).当我查看日志时,我看到了这样的事情:
select * from SOMETABLE where SOMEFIELD in (?)
bind => [STRING1,STRING2]
Run Code Online (Sandbox Code Playgroud)
我也尝试不使用引号(具有类似结果)或非有序参数(:selectedValues),这会导致这样的错误:
SQL Error: Missing IN or OUT parameter at index:: 1
Run Code Online (Sandbox Code Playgroud)
我最终试图直接在参数中设置括号,而不是查询,但这也不起作用......
我可以在运行时构建我的查询,以匹配第一个(工作)情况,但我宁愿以正确的方式执行; 因此,如果有人有想法,我会非常感兴趣地阅读它们!
仅供参考:JPA版本1.0 Oracle 11G
我在公司代理后面工作。由于强制执行了许多限制,当我来构建我的 docker 镜像(主要是基于 ubuntu 的镜像)时,我必须切换到公共网络。构建在同一台计算机上执行(因此,相同的 dns conf)。
除了构建之外,我总是在这个代理后面运行我的容器。该公司也(确实)有自己的 dns。
不幸的是,我不明白如何以“正确的方式”将主机 dns 传递给容器,也不明白 docker 如何设法构建容器 resolv.conf。
当我查看我的主机时,我看到了这样一个 conf :
$ cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.8.4
nameserver 10.xxx.yyy.z
search rennes.mycompany.fr
Run Code Online (Sandbox Code Playgroud)
从我的容器中,我看到:
search rennes.mycompany.fr
nameserver 127.0.0.11
options ndots:0
Run Code Online (Sandbox Code Playgroud)
在我看来很奇怪的是,在容器中只能找到一部分主机配置......当我尝试从容器访问任何公司托管的名称时,我遇到了名称解析失败。
但是,如果我将主机的 resolv.conf 名称服务器添加到容器的名称服务器中,它会起作用:
$ echo nameserver 192.168.1.1 >> /etc/resolv.conf
所以,这确实不是这样做的方法......但我不确定我应该如何执行它。我试图在 docker-compose中将“dns”添加到我的服务中,但我没有工作(或者不是我理解的方式),并且那里的文档非常简陋......
有没有办法告诉 docker 使用/共享主机的 dns 配置?我的问题可能来自我在公司网络之外建立形象吗?
编辑: docker-compose.yml
version: '3.3'
services:
my-apache:
image: apache:latest
ports:
- 8088:80
networks:
- my-project-net
dns:
- 192.168.1.1
depends_on:
- my-project
my-project:
image: my-project:latest
networks:
- …Run Code Online (Sandbox Code Playgroud) 我是linux的初学者用户,也是ssh和隧道的新手.
无论如何,我的目标是在后台维护一个ssh隧道.
为了做到这一点,我编写了以下批处理,然后我将其添加到crontab中(批处理在工作日期间每隔5分钟自动处理一次,从早上8点到晚上9点).我在stackoverflow中的其他一些线程中读到,应该使用autossh,这将确保通过循环检查确保ssh始终正常.我也是....
#!/bin/bash
LOGFILE="/root/Tunnel/logBatchRestart.log"
NOW="$(date +%d/%m/%Y' - '%H:%M)" # date & time of log
if ! ps ax | grep ssh | grep tunnelToto &> /dev/null
then
echo "[$NOW] ssh tunnel not running : restarting it" >> $LOGFILE
autossh -f -N -L pppp:tunnelToto:nnnnn nom-prenom@193.xxx.yyy.zzz -p qqqq
if ! ps ax | grep ssh | grep toto &> /dev/null
then
echo "[$NOW] failed starting tunnel" >> $LOGFILE
else
echo "[$NOW] restart successfull" >> $LOGFILE
fi
fi
Run Code Online (Sandbox Code Playgroud)
我的问题是有时隧道停止工作,虽然每件事看起来都没问题(ps ax | grep …
我们在 swarm 环境中使用 docker。一切都很好......但是对于几天前出现的一个名为“exe”的奇怪进程:
14126 root 20 0 446836 33648 184 R 49.0 0.2 0:05.98 exe
1 root 20 0 52356 532 332 S 34.3 0.0 2750:22 systemd
13789 root 20 0 5424660 49784 0 S 5.6 0.3 2381:57 dockerd
Run Code Online (Sandbox Code Playgroud)
它确实占用了 100% 的 CPU。
我们试图了解它来自哪里,但它非常不稳定,它的 pid 每 3-4 秒就会改变一次。你可以猜想,这样的行为引发了一些警报。
最终,我们设置了一些监控工具(使用auditd)来拍摄它的快照,并看到:
Syscall event curl /usr/bin/curl 24242 24234
Syscall event 4 / 24240 24234
Syscall event exe /usr/bin/runc 24240 24234
Syscall event runc /usr/bin/runc 24234 10444
Run Code Online (Sandbox Code Playgroud)
“main”runc 的父进程是:
root 10444 2621 0 …Run Code Online (Sandbox Code Playgroud) 我已经有这样的错误,当你尝试执行不合适的匹配(日期到布尔,等等),我已经能够很容易地修复.
但是这一次,我很困惑,因为hibernate拒绝将"数字"Id与Java"Long"相匹配(并且当为Double,Integer,Float,String,int,long等设置setter时它也失败了)
sql-server字段"id"是一个NUMERIC(19,0)
我的DTO是:
@XmlRootElement
@XmlAccessorType(XmlAccessType.PROPERTY)
public class DtoResult {
private Long id;
private String name;
// ...
public Long getId() {
return id;
}
public void setId(final Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(final String name) {
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
我的hibernate查询:
final SQLQuery query= getCurrentSession().createSQLQuery(select + from + where);
query.setParameter("manyFields", manyFields);
query
.addScalar("id")
.addScalar("name")
.setResultTransformer(Transformers.aliasToBean(DtoResult.class));
return query.list(); // List<DtoResult>
Run Code Online (Sandbox Code Playgroud)
错误:
IllegalArgumentException occurred while calling setter for …Run Code Online (Sandbox Code Playgroud) 从ui-bootstrap的0.14版开始,它看起来像uib-tooltip-html(previsously:tooltip-html-unsafe)不再起作用了......或者不是我过去使用它的方式.
基本上,当'tooltip-html'没有时,'工具提示'有效:
<a href="#" uib-tooltip-html="UIB-TOOLTIP-HTML">UIB-TOOLTIP-HTML</a>
<a href="#" tooltip-placement="right" uib-tooltip="UIB-TOOLTIP">UIB-TOOLTIP</a>
Run Code Online (Sandbox Code Playgroud)
http://plnkr.co/edit/fJt3nBbT6rSbiN50h7Bp?p=preview
由于ui-bootstrap doc没有关于这个指令的例子,我无法猜出我做错了什么.
任何的想法?
docker ×2
angularjs ×1
batch-file ×1
containerd ×1
dns ×1
docker-swarm ×1
hibernate ×1
java ×1
jpa ×1
linux ×1
oracle ×1
oracle11g ×1
ps ×1
runc ×1
sql ×1
sql-server ×1
ssh ×1