小编vik*_*eve的帖子

MongoTemplate upsert - 从pojo(用户编辑过)进行更新的简单方法?

这是一个简单的pojo:

public class Description {
    private String code;
    private String name;
    private String norwegian;
    private String english;
}
Run Code Online (Sandbox Code Playgroud)

请参阅以下代码,upsert通过spring MongoTemplate 应用于MongoDb:

Query query = new Query(Criteria.where("code").is(description.getCode()));
Update update = new Update().set("name", description.getName()).set("norwegian", description.getNorwegian()).set("english", description.getEnglish());
mongoTemplate.upsert(query, update, "descriptions");
Run Code Online (Sandbox Code Playgroud)

生成Update对象的行Item手动指定类的每个字段.

但如果我的Item对象发生了变化,那么我的Dao图层会破裂

那么有没有办法避免这样做,以便我的Item类中的所有字段自动应用于更新?

例如

Update update = new Update().fromObject(item);
Run Code Online (Sandbox Code Playgroud)

请注意,我的pojo没有扩展DBObject.

java upsert mongodb mongotemplate

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

如何在Gradle中设置语言级别?(因此它与IDE无关)

我想以IDE不可知的方式在gradle中设置java语言级别.

sourceCompatibility = 1.x 在Gradle 2.21中,根级别似乎已弃用.

(编辑:或者是它?IntelliJ给我一个常规的检查错误)

所以我发现了这个,它有效.

idea {
    project {
        languageLevel = '1.7'
    }
}
Run Code Online (Sandbox Code Playgroud)

但是由于idea { }结构的原因,这里的配置是否与IntelliJ IDEA相关联?

有没有办法以IDE不可知的方式做到这一点?

我希望我的gradle构建脚本可以在任何 IDE(无论是IntelliJ IDEA还是Eclipse)或Jenkins(或其他)上运行.

java intellij-idea gradle

10
推荐指数
3
解决办法
7089
查看次数

maven属性公约:"dot case"或"camel case"?

使用java和Mavenmaven属性的约定是什么?

我在这里发布了两个例子,这两个例子都在广泛使用.根据惯例,哪一个是正确的?

例A

<properties>
    <hibernate.version>4.3.8.Final</hibernate.version>
    <hsqldb.version>2.3.2</hsqldb.version>
    <log4j2.version>2.0.2</log4j2.version>
</properties>
Run Code Online (Sandbox Code Playgroud)

例B

<properties>
    <hibernateVersion>4.3.8.Final</hibernateVersion>
    <hsqldbVersion>2.3.2</hsqldbVersion>
    <log4j2Version>2.0.2</log4j2Version>
</properties>
Run Code Online (Sandbox Code Playgroud)

编辑:

以下是Maven Properties Guide的链接.maven属性的一些示例包括${project.build.directory}(dot case)和${project.build.outputDirectory}(dot case和camel case).

官方文档Maven POM Reference建议一个名为<someVar>(camel case)的示例属性.

java camelcasing properties pom.xml maven

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

git-flow:制作"发布候选人"/ QA网络工件的工作流程

我们正在使用git-flow分支模型开发包含Web工件的多个项目.

参考:Vincent Driessen的git flow分支模型

我们正在使用develop分支并jenkins自动构建和部署SNAPSHOTWeb工件以测试环境.

我们手动运行git flow release startgit flow release finish构建非快照工件,这些工件部署到我们的工件并最终部署在prod中.

(如何运行git flow xxx命令?这是一个备忘单)

我的问题:QA的工作流程应该如何运作?

鉴于:

  1. 我们不希望将快照部署到QA
  2. 如果我们在QA中测试的相同工件部署在PROD中,那就太好了
  3. 我们可以git flow尽可能地使用脚本和分支模型

看看分支模型,我自己最好的理解是:

  1. 制作发布分支(例如release/1.1).
  2. 从发布分支构建工件并测试QA.
  3. release/1.1分支中进行更改并根据需要返回到步骤2
  4. 测试完成后,finish发布(合并为主)
  5. 在prod中部署工件.

有没有人有这方面的经验,特别是一步2?如何唯一地标识发布分支中的工件?

我们正在考虑使用版本候选版本,其中maven版本1.1.RC1指示release-candidate1,跟随1.1.RC2,最后1.1(最终版本).

git branch maven git-flow branching-strategy

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

添加定制代码生成器

当我使用某些类型的文件时,例如:Java文件,HTML文件或Jasmine Test文件,我可以使用Code > Generate选项生成一些有用的代码片段,例如:

  • 如果我使用Java文件Code > Generate允许我插入getter,setter,constructor等
  • 如果我使用HTML文件Code > Generate允许我插入XML标记
  • 如果我正在使用Jasmine Text文件Code > Generate允许我插入测试套件或单个测试用例的脚手架

我想知道是否(以及如何)我可以添加自己的'发电机'.我知道我可以使用实时模板,但我喜欢这样的事实,它Code > Generate为我提供了所有可用生成器的快速列表.

intellij-idea intellij-plugin webstorm

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

使用Flutter框架时EOS热敏打印机无法正确打印阿拉伯字符

语境:

我有一台 EOS 热敏打印机,但它无法正确打印阿拉伯字符,如下图所示:

阿拉伯语编码不正确

正如您所看到的,阿拉伯文本打印不正确,并且是从左到右 (LTR)(它应该是从右到左 - RTL)。

注意:您可以清楚地看到英文文本完美打印在页面末尾。

问题:

如何在 flutter 中以正确的方式打印阿拉伯文本?

附加信息:

颤振版本:2.5.3(稳定)

使用的软件包:escpos

在运行 Android 版本(8、9、10)的多个 Android 设备上进行了测试

html printing dart flutter

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

Haskell中的2或3个参数的记忆/动态编程

这是Haskell中一个简单的memoization,用于f1获取一个参数的函数(是的,Fibonacci):

f1 = [calc n | n <- [0..]]
     where calc 0 = 0
           calc 1 = 1
           calc n = f1 !! (n-1) + f1 !! (n-2)
Run Code Online (Sandbox Code Playgroud)

现在,对于带有2个参数的函数f2,或者取3的参数f3,如何做?

对于f2,列表列表是最好的方法吗?或者可以使用不同的数据结构?

f2 = [[calc n m | n <- [0..]] | m <- [0..]]
     where calc 0 0 = 0
           calc a b = // ...something using (f2 !! a !! b)
Run Code Online (Sandbox Code Playgroud)

对于f3 a b c,因为这max_a * max_b * max_c是可管理的,这个memoization /动态编程将如何工作?

我正在寻找最简单/最直接的方法,如果可能的话,使用标准的Haskell库.

编辑

正如MemoCombinators.hs …

haskell memoization dynamic-programming

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

如何在Stash中的所有存储库中的所有分支中搜索(grep)所有文件?

我们有一个托管我们的git repos的私人Atlassian Stash服务器.

我该如何搜索

  • 所有源文件
  • 在所有分支机构
  • 在所有回购

我真的想避免在本地检查所有repos,执行git pull然后递归的过程grep.

Atlassian Stash提供了一些插件用于"企业搜索",但它们并不适用于我们.

如果你有这个工作,请分享设置它的步骤:) :)

git grep bitbucket-server

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

Intellij Idea持久性工具是否有用于将数据库类型转换为Java类型的映射文件?

我试图通过Intellij IDEA中的持久性工具为oracle数据库中的表创建hibernate实体文件.但工具将Varchar2类型映射到java.lang.Object变量类型而不是java.lang.String.是否有任何映射文件.正如您在附件中看到的:数据库架构映射

java mapping orm hibernate intellij-idea

6
推荐指数
0
解决办法
288
查看次数

如何在supabase-js中使用“group by”选择count(*)?

如何在supabase-js 中编写“group by”查询?

在传统的 SQL 中,它看起来像这样:

SELECT COUNT(*), PLAYER FROM GAMES GROUP BY PLAYER
Run Code Online (Sandbox Code Playgroud)

使用React和supabase-js,到目前为止我的代码是这样的:

    const { data, error } = await supabase
        .from('games')
        .select('count(*), player')

        // I need something like this: .groupBy('player')
Run Code Online (Sandbox Code Playgroud)

我怎样才能进行分组依据?

group-by reactjs supabase

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