小编Joh*_*han的帖子

如何使用Hibernate将SQL查询的结果最佳映射到非实体Java对象?

我有一个名为X的Hibernate托管Java实体和一个本机SQL函数(myfunc),我从Hibernate SQL查询中调用这些函数:

SQLQuery q = hibernateSession.createSQLQuery(
                     "SELECT *, myfunc(:param) as result from X_table_name"
             );
Run Code Online (Sandbox Code Playgroud)

我想要做的是将从此查询返回的所有内容映射到一个名为Y的类(不一定由Hibernate管理).Y应该包含来自X的所有属性/字段加上result返回的myfunc,例如Y可以扩展类X并添加一个"结果"字段.

我尝试过的:

  1. 我尝试过使用q.addEntity(Y.class)但是失败了: org.hibernate.MappingException: Unknown entity com.mycompany.Y
  2. q.setResultTransformer(Transformers.aliasToBean(Y.class));但这失败了:org.hibernate.PropertyNotFoundException: Could not find setter for some_property.X有一个someProperty使用适当的getter和setter 调用的字段,但在这种情况下,似乎Hibernate将列名(some_property)映射到正确的字段名称.
  3. q.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP); 返回一个Map但值并不总是X中相应字段所期望的类型.例如,类型为enum和Date的X字段不能直接映射到SQL查询返回的Map(它们是字符串).

处理这种情况的适当方法是什么?

java hibernate hibernate-mapping

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

为谷歌容器注册表创建图像拉秘密不会过期?

我正在尝试让Kubernetes从另一个项目的Google Container Registry下载图像.根据文档,您应该使用以下方法创建图像拉秘密:

$ kubectl create secret docker-registry myregistrykey --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
Run Code Online (Sandbox Code Playgroud)

但是,我不知道DOCKER_USERDOCKER_PASSWORD我应该使用与谷歌容器注册认证?查看GCR文档,它说密码是您可以通过运行获得的访问令牌:

$ gcloud auth print-access-token
Run Code Online (Sandbox Code Playgroud)

这实际上有效......一段时间.问题似乎是这个访问令牌在(我相信是)一小时之后到期.我需要一个在创建图像拉秘密时不会过期的密码(或其他东西).否则Kubernetes群集在一小时左右后无法下载新图像.这样做的正确方法是什么?

google-cloud-platform kubernetes google-kubernetes-engine google-container-registry

15
推荐指数
3
解决办法
7545
查看次数

如何在 Spring Boot 3 中启用问题详细信息(RFC 7807)?

我正在使用Spring Boot 3,据我了解,它应该支持RFC 7807,又名“问题详细信息”,开箱即用。但是,我不知道如何启用Spring Bootweb)以这种格式返回错误。默认情况下,它似乎以标准 SpringJSON格式返回:

{
    "timestamp": "2012-04-25T10:56:28.294+0000",
    "path": "/api/v1/some-resource",
    "status": 400,
    "error": "Bad Request",
    "exception": "java.lang.IllegalArgumentException"
}
Run Code Online (Sandbox Code Playgroud)

如何在 Spring Boot 3 中启用“问题详细信息”(RFC 7807)?

rest http spring-boot

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

在bash中使用内联if语句添加命令参数

只有当变量求值为某个值时,我才想在bash中为命令添加一个参数.例如,这有效:

test=1
if [ "${test}" == 1 ]; then
    ls -la -R
else
    ls -R   
fi
Run Code Online (Sandbox Code Playgroud)

这种方法的问题是,我要重复ls -R两当test1,或者如果它是别的东西.我更愿意,如果我可以在一行中写这个,而不是这样(伪代码不起作用):

ls (if ${test} == 1 then -la) -R
Run Code Online (Sandbox Code Playgroud)

我尝试了以下但它不起作用:

test=1
ls `if [ $test -eq 1 ]; then -la; fi` -R
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:

./test.sh: line 3: -la: command not found
Run Code Online (Sandbox Code Playgroud)

bash

11
推荐指数
3
解决办法
5974
查看次数

"%&"在Clojure中意味着什么?

我使用递归解决了第58个 4clojure问题,但后来我看了另一个人的解决方案,发现了这个:

(fn [& fs] (reduce (fn [f g] #(f (apply g %&))) fs))
Run Code Online (Sandbox Code Playgroud)

哪个比我的解决方案更优雅.但我不明白是什么%&意思?(我确实理解什么%意思,但不是什么时候结合&).谁能对此有所了解?

clojure

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

如何在ansible中配置UFW拒绝策略而不断开连接?

我正在尝试在Ansible中配置UFW,如下所示:

- name: Set firewall default policy
  ufw: state=enabled policy=reject
  sudo: true

- name: Allow SSH in UFW
  ufw: rule=allow port=22 proto=tcp
Run Code Online (Sandbox Code Playgroud)

问题是,只要执行"设置防火墙默认策略",ansible就会断开与服务器的连接:

TASK: [Set firewall default policy] *******************************************
changed: [xxx]

TASK: [Allow SSH in UFW] ******************************************************
fatal: [xxx] => {'msg': 'FAILED: [Errno 61] Connection refused', 'failed': True}

FATAL: all hosts have already failed -- aborting
Run Code Online (Sandbox Code Playgroud)

对我来说,reject在应用策略时,SSH会话似乎已终止.我该如何解决这个问题?我正在使用用户名/密码身份验证(即没有SSH密钥)登录,如果这有任何区别.

ansible ufw

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

如何增加Google Cloud Platform中的后端服务配额?

我正在使用Kubernetes而我正在尝试创建入口资源.我用它创建它:

$ kubectl create -f my-ingress.yaml
Run Code Online (Sandbox Code Playgroud)

我等了一会儿,似乎没有创建负载均衡器.运行:

$ kubectl describe ing my-ingress
Run Code Online (Sandbox Code Playgroud)

收益:

Events:
  FirstSeen LastSeen    Count   From                SubobjectPath   Reason      Message
  ????????? ????????    ?????   ????                ?????????????   ??????      ???????
  46s       46s     1   {loadbalancer-controller }          ADD     my-ingress
  23s       11s     2   {loadbalancer-controller }          GCE :Quota  googleapi: Error 403: Quota 'BACKEND_SERVICES' exceeded.  Limit: 3.0
Run Code Online (Sandbox Code Playgroud)

有没有办法增加可以创建的后端服务的数量?

google-cloud-platform kubernetes

11
推荐指数
2
解决办法
6674
查看次数

如何在Kubernetes的HTTP活跃度探测中使用基本身份验证?

我有一个Docker容器,它公开了一个受基本身份验证保护的运行状况检查.我读过活跃度探头的文件在这里,但我找不到如何指定基本身份验证凭据的任何细节.这不是Kubernetes支持的吗?有没有解决方法?

kubernetes

9
推荐指数
2
解决办法
5741
查看次数

nginx中的动态proxy_pass到Kubernetes中的另一个pod

我试图创建一个将请求转发给Nginx上的代理/<service>http://<service>.我首先尝试了以下内容:

location ~ ^/(.+)$ {
    set $backend "http://$1:80";
    proxy_pass $backend;
}
Run Code Online (Sandbox Code Playgroud)

但它没有说出(当打电话时/myservice):

[error] 7741#0: *1 no resolver defined to resolve http://myservice
Run Code Online (Sandbox Code Playgroud)

由于myservice无法从外部访问,我尝试将go-dnsmasq作为边车安装在同一个pod中,我尝试将其用于DNS解析(就像我在例中看到的那样)并将我的nginx配置更改为如下所示:

location ~ ^/(.+)$ {
        resolver 127.0.0.1:53;
        set $backend "http://$1:80";
        proxy_pass $backend;
}
Run Code Online (Sandbox Code Playgroud)

但现在nginx失败了:

[error] 9#9: *734 myservice could not be resolved (2: Server failure), client: 127.0.0.1, server: nginx-proxy, request: "GET /myservice HTTP/1.1", host: "localhost:8080"
127.0.0.1 - xxx [30/May/2016:10:34:23 +0000] "GET /myservice HTTP/1.1" 502 173 "-" "curl/7.38.0" …
Run Code Online (Sandbox Code Playgroud)

dns dnsmasq nginx kubernetes

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

如何在 Spring Boot 3 中忽略 webflux 中的尾部斜杠?

在 Spring Boot 3 中,它们已发生更改,默认情况下不再忽略尾部斜杠。例如,如果我有一个 GET 资源,/users并且我导航到,/users/那么 Spring Boot webflux 现在将响应 404。

您可以通过实现WebFluxConfigurer并重写该configurePathMatching方法来更改此设置:

@Override
public void configurePathMatching(PathMatchConfigurer configurer) {
     configurer.setUseTrailingSlashMatch();
}
Run Code Online (Sandbox Code Playgroud)

然而,setUseTrailingSlashMatch它已被弃用,文档说可以使用PathPatternParser.setMatchOptionalTrailingSeparator(boolean)。但是,我不明白您实际如何/在哪里配置它。

那么问题来了,我该如何设置PathPatternParser.setMatchOptionalTrailingSeparator(boolean)呢?

java spring-boot spring-webflux

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