我想在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) 是否有可能使用Cobertura告诉它忽略由开始和结束注释标识的某些代码?
例如,
public class Foo {
public void static doSomething() {
...
// Cobertura-Ignore-Start
...
// Cobertura-Ignore-End
}
Run Code Online (Sandbox Code Playgroud)
会导致Cobertura在计算覆盖率统计数据时不包括起始和结束注释之间的代码.
编辑:我正在使用cobertura Ant任务.
我正在使用Clover 2.5,我有一个目标,它将打包二进制文件.但是,目前,似乎Clover检测类正在与我希望在jar中打包的未检测类相同的输出目录中生成.
我如何创建一个jar,以便不包括检测类?有没有办法改变检测类的吐出位置?或者,打包一个不包含已检测类的jar的唯一方法是重新编译所有内容?
我尝试使用三叶草设置目标的tmpdir属性,但似乎没有任何效果.
我正在阅读有关密码哈希的一些内容.我见过SHA-256> MD5.这让我思考应用程序如何处理从一个哈希函数到另一个哈希函数的更改.如果有人使用MD5实现一个哈希密码的应用程序,会发生什么.然后他们决定使用SHA-256.但是,当然存储在数据库中的密码哈希值是在MD5中.
将数据库中的数据从一个散列函数迁移到另一个散列函数的过程是什么?
假设我的jar中的包"com.test.io"中有一个名为test.txt的文件.
我将如何编写一个检索此文本文件的类,然后将内容复制到文件系统上的新文件中?
我在我的数据库中有多对多的关系,我正在使用Hibernate从关系的左侧检索单行.然后我只是调用getter方法来检索关系的右侧(lazy fetch).
作为我工作的一部分,我需要通过执行以下操作对右侧"列表"对象进行排序:
Collections.sort(list);
Run Code Online (Sandbox Code Playgroud)
当我完成工作时,我正在打电话:
session.getTransaction().commitTransaction();
Run Code Online (Sandbox Code Playgroud)
即使我没有在数据库中实际更改任何内容,我可以在日志中看到一些INSERT语句被触发.
在这种情况下我应该做什么,以便我可以在不引起数据库命中的情况下订购列表?
我玩了!框架每30秒执行一次的作业:
@Every("30s")
public class MyJob extends Job { ... }
Run Code Online (Sandbox Code Playgroud)
这项工作做了一些事情,比如阅读电子邮件和写入数据库.但是,作业可能无法在30秒内完成.如果工作超过30秒的时间较长,我想杀人,试图启动,而原来的工作仍在进行后续作业.有没有办法做到这一点?甚至暂停后续工作,直到原来的工作完成?
是否可以仅将注释限制为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将导致编译错误,因为他喜欢土地.
假设我有一个像这样使用 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) 假设我有几个实体看起来像这样:
@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会导致异常?