小编Mar*_*vin的帖子

如何在JPA命名查询的IN子句中使用动态参数?

我的问题是关于这种查询:

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

sql oracle jpa oracle11g

15
推荐指数
1
解决办法
7万
查看次数

如何告诉 docker 使用主机 dns 配置?

我在公司代理后面工作。由于强制执行了许多限制,当我来构建我的 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)

dns docker docker-compose

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

如何设置自动(重新)启动后台ssh隧道

我是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 …

linux ssh batch-file

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

寻找有关containerd-shim/runc子进程的解释

我们在 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)

ps runc docker docker-swarm containerd

5
推荐指数
0
解决办法
2619
查看次数

"从调用setter for property"时出现"IllegalArgumentException",从sqlserver numeric到java对象

我已经有这样的错误,当你尝试执行不合适的匹配(日期到布尔,等等),我已经能够很容易地修复.

但是这一次,我很困惑,因为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)

java sql-server hibernate

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

uib-tooltip-html不能正常工作

从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没有关于这个指令的例子,我无法猜出我做错了什么.

任何的想法?

twitter-bootstrap angularjs angular-ui-bootstrap

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