如何阻止psql(PostgreSQL客户端)输出通知?例如
psql:schema/auth.sql:20:注意:CREATE TABLE/PRIMARY KEY将为表"users"创建隐式索引"users_pkey"
在我看来,程序应该保持沉默,除非它有错误,或输出东西的其他原因.
我正在寻找最无痛的方法来过滤集合.我在想类似的东西
Collection<?> foo = existingCollection.stream().filter( ... ). ...
Run Code Online (Sandbox Code Playgroud)
但我不确定如何最好从过滤器,返回或填充另一个集合.大多数例子似乎都像"在这里你可以打印".可能有一个我缺少的构造函数或输出方法.
我目前看到它有5个可能的数据库配置文件
目前我已经配置了运行应用程序的postgres,并且h2配置为通过具有不同application.properties
的java/resource
s vs 进行测试test/resources
在这些场景中更改数据库连接信息的最简单方法是什么?
我希望有一个看起来像的API
public static long toMillis ( long duration, ChronoUnit unit ) {
// magic duration to millis
}
toMillis( 5, ChronoUnit.SECONDS); // 5000
Run Code Online (Sandbox Code Playgroud)
当然,我实际上并没有写作,toMillis
但这基本上就是我想要做的.
在jpa中集成Java 8 Date Time api的最佳方法是什么?
我添加了转换器:
@Converter(autoApply = true)
public class LocalDatePersistenceConverter implements AttributeConverter<LocalDate, Date> {
@Override
public Date convertToDatabaseColumn(LocalDate localDate) {
return Date.valueOf(localDate);
}
@Override
public LocalDate convertToEntityAttribute(Date date) {
return date.toLocalDate();
}
}
Run Code Online (Sandbox Code Playgroud)
和
@Converter(autoApply = true)
public class LocalDateTimePersistenceConverter implements AttributeConverter<LocalDateTime, Timestamp> {
@Override
public Timestamp convertToDatabaseColumn(LocalDateTime entityValue) {
return Timestamp.valueOf(entityValue);
}
@Override
public LocalDateTime convertToEntityAttribute(Timestamp databaseValue) {
return databaseValue.toLocalDateTime();
}
}
Run Code Online (Sandbox Code Playgroud)
一切似乎都很好,但我应该如何使用JPQL进行查询?我正在使用Spring JPARepository,目标是选择日期与给定日期相同的所有实体,唯一的区别是它作为LocalDateTime保存在实体中.
所以:
public class Entity {
private LocalDateTime dateTime;
...
}
Run Code Online (Sandbox Code Playgroud)
和:
@Query("select case …
Run Code Online (Sandbox Code Playgroud) 我注意到自2005年以来XML :: RSS :: Parser尚未更新.这仍然是解析RSS或Atom的推荐库吗?有更好的方式还是更好的方式?
我正在尝试向不可靠的服务器实现请求.请求是一个很好的,但我的perl脚本不能100%成功完成.问题是服务器偶尔会死锁(我们试图找出原因)并且请求永远不会成功.由于服务器认为它是活动的,它会使套接字连接保持打开状态,因此LWP :: UserAgent的超时值对我们来说没有任何好处.对请求强制执行绝对超时的最佳方法是什么?
仅供参考,这不是DNS问题.死锁与大量同时访问Postgres数据库的更新有关.出于测试目的,我们基本上在服务器响应处理程序中放置了while(1){}行.
目前,代码如下所示:
my $ua = LWP::UserAgent->new;
ua->timeout(5); $ua->cookie_jar({});
my $req = HTTP::Request->new(POST => "http://$host:$port/auth/login");
$req->content_type('application/x-www-form-urlencoded');
$req->content("login[user]=$username&login[password]=$password");
# This line never returns
$res = $ua->request($req);
Run Code Online (Sandbox Code Playgroud)
我尝试使用信号来触发超时,但这似乎不起作用.
eval {
local $SIG{ALRM} = sub { die "alarm\n" };
alarm(1);
$res = $ua->request($req);
alarm(0);
};
# This never runs
print "here\n";
Run Code Online (Sandbox Code Playgroud)
我将要使用的最终答案是有人离线提出的,但我会在这里提到它.出于某种原因,SigAction有效,而$ SIG(ALRM)却没有.仍然不确定为什么,但这已经过测试可行.这是两个工作版本:
# Takes a LWP::UserAgent, and a HTTP::Request, returns a HTTP::Request
sub ua_request_with_timeout {
my $ua = $_[0];
my $req = $_[1];
# Get whatever timeout is set for …
Run Code Online (Sandbox Code Playgroud) 我之前的问题解决了我的问题,但让我缺乏理解.
use 5.014;
use warnings;
use Test::More;
# still has carp after no Carp
package Test0 {
use Carp qw( carp );
sub new {
my $class = shift;
my $self = {};
carp 'good';
bless $self, $class;
return $self;
}
no Carp;
}
my $t0 = Test0->new;
ok( ! $t0->can('carp'), 'cannot carp');
Run Code Online (Sandbox Code Playgroud)
这个测试没有通过,这意味着no ...
没有做我认为它做的事情,包括不重要的符号.我已经读过了perldoc no
,但它似乎确实相当令人失望.鉴于此代码的结果,我会说它并不完全符合它所宣传的内容.
怎么no
办?何时以及为什么要使用它?
我们有一个Quartz/Spring Batch作业,为了审计日志记录的目的,我们希望将它作为系统用户进行"认证".我们的一些方法依赖于获取SecurityContext来执行此操作.运行此作业的方式是可信的(或经过身份验证).我们不想实际使用密码或其他令牌(因为该过程基本上总是由石英生成).
我试过这个
private void authenticate() {
UserDetails admin = userDetailsService.loadUserByUsername( "admin" );
RunAsUserToken token = new RunAsUserToken(
UUID.randomUUID().toString(), admin, admin.getAuthorities(), null , null );
Authentication user = authenticationManager.authenticate( token );
if ( user.isAuthenticated() ) {
SecurityContext sc = new SecurityContextImpl();
sc.setAuthentication( user );
SecurityContextHolder.setContext( sc );
}
}
Run Code Online (Sandbox Code Playgroud)
但它导致了
org.springframework.security.authentication.ProviderNotFoundException: No AuthenticationProvider found for org.springframework.security.access.intercept.RunAsUserToken
Run Code Online (Sandbox Code Playgroud)
而且我不确定一些RunAsUserToken参数是做什么的(例如密钥)或者我应该在Credentials方面提供什么.
我如何验证或以其他方式设置安全上下文,就像它被认证为此用户一样?
我有Jenkins管道工作,其中作业之间的唯一区别是参数,单个"名称"值,我甚至可以使用多分支作业名称(虽然不是它作为BRANCH名称的JOB_NAME传递的内容,遗憾的是没有envs看起来合适而无需解析).如果我可以设置Jenkinsfile的外部,那将是很好的,因为那时我可以为所有各种工作重用相同的jenkins文件.