小编Ser*_*gii的帖子

在Mac上找不到Gradle home

gradle使用终端安装在MAC上.

brew install gradle

Gradle已成功安装.

gradle -v

------------------------------------------------------------
Gradle 3.3
------------------------------------------------------------

Build time:   2017-01-03 15:31:04 UTC
Revision:     075893a3d0798c0c1f322899b41ceca82e4e134b

Groovy:       2.4.7
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_112 (Oracle Corporation 25.112-b16)
OS:           Mac OS X 10.12.3 x86_64
Run Code Online (Sandbox Code Playgroud)

但我找不到gradle home.

echo $GRADLE_HOME
[empty result]
Run Code Online (Sandbox Code Playgroud)

确定主目录的第一步是检测gradle指令的位置:

which gradle
/usr/local/bin/gradle
Run Code Online (Sandbox Code Playgroud)

有一个难以理解的bash文件.


有关如何通过终端检测gradle主目录的任何想法?

java macos bash gradle

40
推荐指数
5
解决办法
5万
查看次数

Nest.js 验证字符串数组(如果仅存在已定义的字符串)

在控制器级别的 Nest.js 应用程序中,我必须验证 DTO。

我很难检查项目是否不为空(如果任何列表项目为null或,则请求应被拒绝undefined

下面的代码演示了我配置的验证。

import { ArrayMinSize, IsArray } from 'class-validator'

export class ReminderPayload {
    // ...
    @IsArray()
    @ArrayMinSize(1)
    recipients: string[]
}
Run Code Online (Sandbox Code Playgroud)

问题

  1. 我正在寻求帮助来拒绝带有身体数据的请求,例如
{
    "recipients": [
        null
    ]
}
Run Code Online (Sandbox Code Playgroud)
  1. 如何验证数组项是否string唯一(如果对象位于数组项位置,则应拒绝处理)?

聚苯乙烯

'class-validator'注入成功,它为我的 API 生成了一些验证结果。

validation request typescript nestjs

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

春天的核心.默认的@Bean destroy方法

我有自己的豆子:

@Bean
public MyBean myBean(){...
Run Code Online (Sandbox Code Playgroud)

按照spring文档发布自己应该指定的资源destroyMethod.如果destroyMethod没有直接指定,我没有找到弹簧调用的任何默认destroy方法.

我用了

@Bean(destroyMethod = "close")
public MyBean myBean(){...
Run Code Online (Sandbox Code Playgroud)

但是如果它默认具有值,可以考虑不直接指定destroy方法.


默认情况下,像春天在什么试一下destroy,close,release?如果spring默认尝试一些方法来释放资源 - 哪些?

java spring release

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

Spring数据jpa.如果没有结果返回默认值,则查找max

我在我的spring存储库界面中实现了:

@Query("SELECT max(ch.id) FROM MyEntity ch")
Long getMaxId();
Run Code Online (Sandbox Code Playgroud)

如果db不为空,它可以正常工作.如果我使用测试配置启动我的环境(使用H2DB) - 一开始就没有数据.返回的结果getMaxId()null.我想在这里0.


是否有可能修改我*JpaRepository0的结果?如果是,应该如何修改?

java spring hql spring-data-jpa

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

Java 8 Collectors.groupingBy with map value将收集结果设置为同一个集合

示例中使用的对象来自包 org.jsoup.nodes

import org.jsoup.nodes.Attribute;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
Run Code Online (Sandbox Code Playgroud)

我需要按键的组属性和结果值Set.

Optional<Element> buttonOpt = ...;
Map<String, Set<String>> stringStringMap =
    buttonOpt.map(button -> button.attributes().asList().stream()
            .collect(groupingBy(Attribute::getKey, 
                  mapping(attribute -> attribute.getValue(), toSet()))))
            .orElse(new HashMap<>());
Run Code Online (Sandbox Code Playgroud)

它似乎正确收集,但值始终是单个字符串(因为库实现)包含按空格分割的不同值.试图改善解决方案:

Map<String, Set<HashSet<String>>> stringSetMap = buttonOpt.map(
        button -> button.attributes()
            .asList()
            .stream()
            .collect(groupingBy(Attribute::getKey, 
                        mapping(attribute -> 
                          new HashSet<String>(Arrays.asList(attribute.getValue()
                                                                .split(" "))),
                   toSet()))))
  .orElse(new HashMap<>());
Run Code Online (Sandbox Code Playgroud)

结果我有不同的结构,Map<String, Set<HashSet<String>>>但我需要Map<String, Set<String>>

我已经检查了一些收藏家,但没有解决我的问题.

问题是:

如何合并与相同属性键相关的所有集合?

java lambda java-8 java-stream collectors

14
推荐指数
3
解决办法
1152
查看次数

JUnit 5 vs TestNG

我们使用的是JUnit 4,但我们在测试分组方面遇到了一些问题.对于集成测试,我们遇到了运行顺序的问题.我们已于2016年2月迁移到TestNG.

现在我们正在为我们的项目启动一个新的独立模块,我们的部分团队成员想要JUnit 5.我相信它比第4更好(有一些新的重要功能,但我也看到了一些问题).

我不想使用JUnit 5,因为担心我们的新应用程序可能出现问题,因为我有第4次经验.但我必须对团队更加灵活,因此在做出决定之前,我需要具有JUnit 5经验的用户的建议.

comparison junit testng junit5

13
推荐指数
2
解决办法
7421
查看次数

Java 8 lambda Collectors.groupingBy with Collector.toList()中的map

我已经实现了以下示例:

Map<String, List<Event>> map = events.getItems().stream()
        .collect(Collectors.groupingBy(Event::getStatus, Collectors.toList()));
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得输出Map<String, List<EventDto>> map

一个EventDto可以通过执行其中转换外部方法获得EventEventDto.例如 - this::convertFromEventToEventDto.

java lambda java-8 java-stream

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

如何简化groovy循环代码

我有一个凹槽代码(带有一些java样式元素)

dates.forEach new Consumer<Period>() {
    @Override
    void accept(Period period) {
        println period
    }
}
Run Code Online (Sandbox Code Playgroud)

有可能做得更简单吗?

我想有类似的东西

dates.forEach println
Run Code Online (Sandbox Code Playgroud)

要么

dates.forEach println date
Run Code Online (Sandbox Code Playgroud)

java groovy java-8

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

@OneToMany(EAGER) vs @LazyCollection(FALSE)&amp;OneToMany(LAZY)

代码之间有什么区别?

@LazyCollection(LazyCollectionOption.FALSE)
@OneToMany(mappedBy = "siteesTypeSite", cascade = CascadeType.ALL,fetch = FetchType.LAZY)
public Set<Sites> getSitees() {
    return sitees;
}
Run Code Online (Sandbox Code Playgroud)

@OneToMany(mappedBy = "siteesTypeSite", cascade = CascadeType.ALL,fetch = FetchType.EAGER)
public Set<Sites> getSitees() {
    return sitees;
}
Run Code Online (Sandbox Code Playgroud)

至于我,他们都得到了相似的结果,但第二种情况更干净。如果我记错了请纠正我。

java hibernate lazy-initialization

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

Hibernate @CreationTimestamp @UpdateTimestamp for Calendar

在我的实体中我有字段:

@UpdateTimestamp
@Column
private java.util.Calendar modifiedDate;
@CreationTimestamp
@Column
private java.util.Calendar createdDate;
Run Code Online (Sandbox Code Playgroud)

这些字段由hibernate更改.我看到结果保存到DB.在没有时间的DB保存数据中,我如何解释休眠日历应该用当前日期时间保存?


PS我看到了方法注释的解决方法,@PreUpdate @PrePersist我觉得我不需要.

java orm hibernate jpa

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