小编Ole*_*lov的帖子

JPA:如何覆盖@Embedded属性的列名

Person

@Embeddable
public class Person {
    @Column
    public int code;

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

嵌入Event两次作为两个不同的属性:manageroperator

@Entity
public class Event {
    @Embedded
    @Column(name = "manager_code")
    public Person manager;

    @Embedded
    @Column(name = "operator_code")
    public Person operator;

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

在使用Persistence生成数据库模式时,这应该给出两个相应的列.而是抛出异常:

org.hibernate.MappingException:实体映射中的重复列:事件列:代码

如何覆盖code每个属性的默认列名?

java orm hibernate jpa

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

根据覆盖率报告删除未使用的JavaScript代码

有一个很大的javascript库(大约40 000行代码)和一个使用不到50%的库代码的应用程序.

有一个测试利用了库中所需的所有功能,可以生成覆盖率报告.

如何以编程方式删除依赖于测试的每个未使用的代码行?

注意:覆盖率报告包含已执行但不准确的行的索引:忽略右括号,即使方法体不是等,也会将带有方法名称的行标记为已执行.

javascript optimization code-coverage minify test-coverage

17
推荐指数
3
解决办法
2175
查看次数

Java 8流:处理列表中的每个可能的元素对

我有一个Collection任意类的元素.我想迭代遍历集合并使用元素和集合中的每个其他元素逐个执行一些操作(不包括元素本身).让它List<Integer>为简单起见:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Run Code Online (Sandbox Code Playgroud)

有了for循环,它将是:

for (Integer i : list) {
    for (Integer j : list) {
        if (!i.equals(j)) System.out.println(i * 2 + j);  //just for example
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是如何使用Stream API执行此操作

这就是我所得到的:

list.stream().forEach(i ->
    list.stream().forEach(j -> {
        if (!i.equals(j)) System.out.println(i * 2 + j);
    })
);
Run Code Online (Sandbox Code Playgroud)

但它看起来并不比嵌套循环好.有更优雅的方式吗?

java java-stream

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

Java:为什么静态接口方法有一个体?

我需要使用initialize静态方法而不是static {...}块来运行一些初始化任务.在Java 8中,可以定义静态接口方法,但我不需要它有一个主体,我只需要知道该类实现了这个静态方法.

interface Initializable {
    static void initialize(){}
}

class Icons implements Initializable {
    public static void initialize(){
        //...
    }

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

在这种情况下使用静态接口方法的想法有什么问题?为什么不能在没有主体的情况下定义接口静态方法?

一般目的是:Collection通过调用各自的方法来初始化应用程序启动时的类.初始化任务包括:建立数据库连接,渲染图标和图形,分析工作站配置等.

java methods interface

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

MySQL:选择当周星期一的日期

我正在使用MySQL查询构建每周报告.首先我得到周数

SELECT WEEK(CURDATE());
Run Code Online (Sandbox Code Playgroud)

然后我需要显示一周的开始日期(我所在地区的星期一).如何只用MySQL做到这一点?

谢谢!

mysql

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

IntelliJ IDEA:执行选定的代码片段

有时需要快速测试某些表达式的输出。执行选定的片段并立即查看结果会很方便,System.out而无需运行项目的main()方法。

IntelliJ是否有一些解决方法来提供此功能?

java intellij-idea

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

Spring Data JPA:CriteriaQuery 获取每个唯一外键具有最大值的实体

有一个Event类:

@Entity
public class Event {

    @Id
    private Integer id;

    @ManyToOne(cascade = CascadeType.ALL)
    private Company company;

    @Column
    private Long time;

    ...

}
Run Code Online (Sandbox Code Playgroud)

我想要一个EventFilter类(实现Specification),它将CriteriaQuery以与以下 SQL 查询相同的方式生成选择实体:

SELECT *
FROM events e1
WHERE e1.time = (
    SELECT MAX(time)
    FROM events e2
    WHERE e1.company_id = c2.company_id
)
Run Code Online (Sandbox Code Playgroud)

筛选结果将仅包含每个公司具有唯一值Company和最大值的事件。time

这是EventFilter我最终得到的课程:

public class EventFilter implements Specification<Event> {

    @Override
    public Predicate toPredicate(Root<Event> root, CriteriaQuery<?> q, CriteriaBuilder cb) {
        Subquery<Long> subquery = q.subquery(Long.class);
        Root<Event> …
Run Code Online (Sandbox Code Playgroud)

sql hibernate jpa criteria-api spring-data-jpa

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

Java 8流API:获取第一个找到的集合元素

有一节课

public class Event {
    public boolean isActive() {
        //...
    }
    //...
}
Run Code Online (Sandbox Code Playgroud)

有一个TreeSet<Event> events持有数千个元素.我需要有效地找到任何活动Event并获得元素.

我想用a parallelStream来利用多线程.

是否可以像anyMatch()仅返回找到的元素一样进行操作?

boolean hasActiveEvent = events.parallelStream().anyMatch(event -> event.isActive());
Run Code Online (Sandbox Code Playgroud)

java java-stream

-1
推荐指数
1
解决办法
118
查看次数