我有一个名为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并添加一个"结果"字段.
我尝试过的:
q.addEntity(Y.class)但是失败了:
org.hibernate.MappingException: Unknown entity com.mycompany.Yq.setResultTransformer(Transformers.aliasToBean(Y.class));但这失败了:org.hibernate.PropertyNotFoundException: Could not find setter for some_property.X有一个someProperty使用适当的getter和setter 调用的字段,但在这种情况下,似乎Hibernate将列名(some_property)映射到正确的字段名称.q.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP); 返回一个Map但值并不总是X中相应字段所期望的类型.例如,类型为enum和Date的X字段不能直接映射到SQL查询返回的Map(它们是字符串).处理这种情况的适当方法是什么?
我正在尝试让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_USER和DOCKER_PASSWORD我应该使用与谷歌容器注册认证?查看GCR文档,它说密码是您可以通过运行获得的访问令牌:
$ gcloud auth print-access-token
Run Code Online (Sandbox Code Playgroud)
这实际上有效......一段时间.问题似乎是这个访问令牌在(我相信是)一小时之后到期.我需要一个在创建图像拉秘密时不会过期的密码(或其他东西).否则Kubernetes群集在一小时左右后无法下载新图像.这样做的正确方法是什么?
google-cloud-platform kubernetes google-kubernetes-engine google-container-registry
我正在使用Spring Boot 3,据我了解,它应该支持RFC 7807,又名“问题详细信息”,开箱即用。但是,我不知道如何启用Spring Boot(web)以这种格式返回错误。默认情况下,它似乎以标准 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)?
只有当变量求值为某个值时,我才想在bash中为命令添加一个参数.例如,这有效:
test=1
if [ "${test}" == 1 ]; then
ls -la -R
else
ls -R
fi
Run Code Online (Sandbox Code Playgroud)
这种方法的问题是,我要重复ls -R两当test为1,或者如果它是别的东西.我更愿意,如果我可以在一行中写这个,而不是这样(伪代码不起作用):
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) 我使用递归解决了第58个 4clojure问题,但后来我看了另一个人的解决方案,发现了这个:
(fn [& fs] (reduce (fn [f g] #(f (apply g %&))) fs))
Run Code Online (Sandbox Code Playgroud)
哪个比我的解决方案更优雅.但我不明白是什么%&意思?(我确实理解什么%意思,但不是什么时候结合&).谁能对此有所了解?
我正在尝试在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密钥)登录,如果这有任何区别.
我正在使用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)
有没有办法增加可以创建的后端服务的数量?
我有一个Docker容器,它公开了一个受基本身份验证保护的运行状况检查.我读过活跃度探头的文件在这里,但我找不到如何指定基本身份验证凭据的任何细节.这不是Kubernetes支持的吗?有没有解决方法?
我试图创建一个将请求转发给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) 在 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)呢?