小编dig*_*nie的帖子

这样的JSON字符串构建器是否存在?

我想在Java中执行类似下面的操作,并且想知道这样的JSON库/助手是否已存在于某处?

SomeJsonBuilder builder = new SomeJsonBuilder();
builder.add("one", "oneValue");
builder.add("two.three", "threeValue");
String output = builder.toString();
Run Code Online (Sandbox Code Playgroud)

这样上面的输出字符串将是这样的:

{"one":"oneValue", "two":{"three":"threeValue"}}
Run Code Online (Sandbox Code Playgroud)

java json

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

配置cobertura以忽略某些代码块

是否有可能使用Cobertura告诉它忽略由开始和结束注释标识的某些代码?

例如,

public class Foo {

    public void static doSomething() {
        ...
        // Cobertura-Ignore-Start
        ...
        // Cobertura-Ignore-End
}
Run Code Online (Sandbox Code Playgroud)

会导致Cobertura在计算覆盖率统计数据时不包括起始和结束注释之间的代码.

编辑:我正在使用cobertura Ant任务.

java cobertura

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

更改Clover检测类的位置

我正在使用Clover 2.5,我有一个目标,它将打包二进制文件.但是,目前,似乎Clover检测类正在与我希望在jar中打包的未检测类相同的输出目录中生成.

我如何创建一个jar,以便不包括检测类?有没有办法改变检测类的吐出位置?或者,打包一个不包含已检测类的jar的唯一方法是重新编译所有内容?

我尝试使用三叶草设置目标的tmpdir属性,但似乎没有任何效果.

java ant clover

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

更改预先存在的数据库上的散列函数

我正在阅读有关密码哈希的一些内容.我见过SHA-256> MD5.这让我思考应用程序如何处理从一个哈希函数到另一个哈希函数的更改.如果有人使用MD5实现一个哈希密码的应用程序,会发生什么.然后他们决定使用SHA-256.但是,当然存储在数据库中的密码哈希值是在MD5中.

将数据库中的数据从一个散列函数迁移到另一个散列函数的过程是什么?

security passwords hash md5 sha

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

如何将jar中的文本文件复制到jar外的文件中?

假设我的jar中的包"com.test.io"中有一个名为test.txt的文件.

我将如何编写一个检索此文本文件的类,然后将内容复制到文件系统上的新文件中?

java io jar file

4
推荐指数
1
解决办法
4840
查看次数

Hibernate:排序列表而不"触摸"数据库

我在我的数据库中有多对多的关系,我正在使用Hibernate从关系的左侧检索单行.然后我只是调用getter方法来检索关系的右侧(lazy fetch).

作为我工作的一部分,我需要通过执行以下操作对右侧"列表"对象进行排序:

Collections.sort(list);
Run Code Online (Sandbox Code Playgroud)

当我完成工作时,我正在打电话:

session.getTransaction().commitTransaction();
Run Code Online (Sandbox Code Playgroud)

即使我没有在数据库中实际更改任何内容,我可以在日志中看到一些INSERT语句被触发.

在这种情况下我应该做什么,以便我可以在不引起数据库命中的情况下订购列表?

java hibernate

4
推荐指数
1
解决办法
2142
查看次数

使用Play同时运行Schedules Jobs!骨架

我玩了!框架每30秒执行一次的作业:

@Every("30s")
public class MyJob extends Job { ... }
Run Code Online (Sandbox Code Playgroud)

这项工作做了一些事情,比如阅读电子邮件和写入数据库.但是,作业可能无法在30秒内完成.如果工作超过30秒的时间较长,我想杀人,试图启动,而原来的工作仍在进行后续作业.有没有办法做到这一点?甚至暂停后续工作,直到原来的工作完成?

java playframework

4
推荐指数
1
解决办法
1567
查看次数

仅允许注释到List中

是否可以仅将注释限制为List?所以,假设我有两个注释:

(1) Foo.class
(2) Bar.class
Run Code Online (Sandbox Code Playgroud)

声明List时,我只想允许包含注释,但其他一切都会导致编译错误:

List<Something> list = new ArrayList<Something>();
list.add(Foo.class);
list.add(Bar.class);
list.add(String.class); // bad
Run Code Online (Sandbox Code Playgroud)

如果甚至可以实现上述目的,那么可以将其限制为注释类型吗?我的意思是只允许以某种方式分组的注释.例如,如果我有以下注释:

(1) Shark.class
(2) GoldFish.class
(3) Lion.class
Run Code Online (Sandbox Code Playgroud)

我只想允许生活在水中的注释.因此,将Lion.class添加到List将导致编译错误,因为他喜欢土地.

java annotations

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

使用 Play 查找多对多实体交集的优雅方式

假设我有一个像这样使用 Play Framework 的 Model 类实现的 Student 实体:

@Entity
public class Student extends Model {

    public String name;

    @ManyToMany(fetch = FetchType.LAZY)
    @JoinTable(name = "student_subject",
        joinColumns = {@JoinColumn(name = "student_id", referencedColumnName = "id")},
        inverseJoinColumns = {@JoinColumn(name = "subject_id", referencedColumnName = "id")})
    public List<Subject> subjects;

    ...
}
Run Code Online (Sandbox Code Playgroud)

一个主题看起来像这样:

@Entity
public class Subject extends Model {

    public String name;

    @ManyToMany(fetch = FetchType.LAZY)
    @JoinTable(name = "student_subject",
        joinColumns = {@JoinColumn(name = "subject_id", referencedColumnName = "id")},
        inverseJoinColumns = {@JoinColumn(name = "student_id", referencedColumnName = "id")})
    public List<Student> …
Run Code Online (Sandbox Code Playgroud)

java sql jpa playframework

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

Play Framework/JPA:使用点表示法查找但使用删除的相同查询不起作用

假设我有几个实体看起来像这样:

@Entity
public class Person extends Model {
    @ManyToOne
    @JoinColumn(name = "fooId", nullable = false)
    public Foo foo;
    ...
}

@Entity
public class Foo extends Model {
    @ManyToOne
    @JoinColumn(name = "barId", nullable = false)
    public Bar bar;
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在让我们说我想找到与特定Bar实例无关的所有人:

Person.find("foo.bar <> ?", someInstanceOfBar).fetch();
Run Code Online (Sandbox Code Playgroud)

这很好,并返回我期望的所有人.

但是,如果我稍微调整上述语句以删除与Bar无关的所有人:

Person.delete("foo.bar <> ?", someInstanceOfBar);
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

PersistenceException occured : org.hibernate.exception.SQLGrammarException: could not execute update query
...
Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "DELETE FROM PERSON CROSS[*] JOIN FOO FOO1_ WHERE BARID<>? ";
Run Code Online (Sandbox Code Playgroud)

任何想法为什么找到People会返回正确的行数,但是使用相同的where子句删除People会导致异常?

java sql jpa playframework

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

标签 统计

java ×9

playframework ×3

jpa ×2

sql ×2

annotations ×1

ant ×1

clover ×1

cobertura ×1

file ×1

hash ×1

hibernate ×1

io ×1

jar ×1

json ×1

md5 ×1

passwords ×1

security ×1

sha ×1