小编Kkk*_*kev的帖子

带参数属性的Spring数据JPA查询

声明使用输入参数属性作为查询参数的Spring数据JPA查询的最简单方法是什么?

例如,假设我有一个实体类:

public class Person {
    @Id
    private long id;

    @Column
    private String forename;

    @Column
    private String surname;
}
Run Code Online (Sandbox Code Playgroud)

和另一课:

public class Name {
    private String forename;
    private String surname;

    [constructor and getters]
}
Run Code Online (Sandbox Code Playgroud)

...然后我想编写一个Spring数据存储库,如下所示:

public interface PersonRepository extends CrudRepository<Person, Long> {
    @Query("select p from Person p where p.forename = ?1.forename and p.surname = ?1.surname")
    findByName(Name name);
}
Run Code Online (Sandbox Code Playgroud)

...但是Spring数据/ JPA不喜欢我在?1参数上指定属性名称.

什么是最好的选择?}

spring jpa spring-data spring-data-jpa

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

Java:如何从List <T>转换为Map <f1(T),List(f2(T))>而无需迭代

我有一个对象列表,我需要转换为一个映射,其中键是每个元素的函数,值是每个元素的另一个函数的列表.实际上,这是通过它们的功能对元素进行分组.

例如,假设一个简单的元素类:

class Element {
    int f1() { ... }
    String f2() { ... }
}
Run Code Online (Sandbox Code Playgroud)

以及这些的清单:

[
    { f1=100, f2="Alice" },
    { f1=200, f2="Bob" },
    { f1=100, f2="Charles" },
    { f1=300, f2="Dave" }
]
Run Code Online (Sandbox Code Playgroud)

那我想要一张地图如下:

{
    {key=100, value=[ "Alice", "Charles" ]},
    {key=200, value=[ "Bob" ]},
    {key=300, value=[ "Dave" ]}
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议一种简洁的方式在Java中执行此操作而不进行迭代吗?LambdaJ的group方法与Guava的组合Maps.transform几乎可以实现,但group不生成地图.

java collections guava lambdaj

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

使用@Immutable注释不可变Java类的优点是什么?

我得到了不变性的概念,以及为什么让DTO不可变是一个好主意.

我还注意到Java有一个@Immutable注释,我们可以使用它来注释不可变类.

我的问题是:注释Java类@Immutable给我们带来了什么?是否有任何库功能仅适用于以这种方式注释的类?

java concurrency annotations immutability

9
推荐指数
2
解决办法
6900
查看次数

如何在Spring XML文件中声明Java 8方法引用?

我想将Java 8方法引用声明为Spring bean.在Spring XML文件中执行此操作的最简单方法是什么?

例如,假设我有:

class Foo {
    Foo(ToLongFunction<Bar> fn) { ... }
}

class Bar {
    long getSize() { ... }
}
Run Code Online (Sandbox Code Playgroud)

...我想创建一个Foo将方法引用Bar::getSize作为构造函数参数.

如何Foo在Spring bean XML文件中声明实例?

java lambda spring java-8

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

Ruby:读取临时zip文件

我有一个TempFilezip文件的对象,我想从中读取如下:

Zip::ZipFile.open_buffer(tempfile) do |zipfile|
    ...
end
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,我收到以下错误:

Zip::ZipFile.open_buffer expects an argument of class String or IO. Found: Tempfile
Run Code Online (Sandbox Code Playgroud)

我也试过了

Zip::ZipFile.open(tempfile.path) do |zipfile|
    ...
end
Run Code Online (Sandbox Code Playgroud)

但那会回来

can't dup NilClass
Run Code Online (Sandbox Code Playgroud)

如何处理临时zip文件?

ruby zip temporary-files

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

Guava:将List <Optional <T >>转换为List <T>,只保留当前值

有没有一种优雅的方式使用Guava从选项列表转换为现值列表?

例如,从

ImmutableList.of(
    Optional.of("Tom"), Optional.<String>absent(), Optional.of("Dick"),
    Optional.of("Harry"), Optional.<String>absent()
)
Run Code Online (Sandbox Code Playgroud)

到一个只包含的列表

["Tom", "Dick", "Harry"]
Run Code Online (Sandbox Code Playgroud)

一种方法是:

List<T> filterPresent(List<Optional<T>> inputs) {
    return FluentIterable.from(inputs)
            .filter(new Predicate<Optional<T>>() {
                @Override
                public boolean apply(Optional<T> optional) {
                    return optional.isPresent();
                }
            }).transform(new Function<Optional<T>, T>() {
                @Override
                public T apply(Optional<T> optional) {
                    return optional.get();
                }
            }).toList();
}
Run Code Online (Sandbox Code Playgroud)

但这很冗长.

遗憾的是,Java 8不是一个选项.

java guava

5
推荐指数
2
解决办法
2604
查看次数

无法在Spring中连接到MySQL

我无法连接到数据库.我的凭据是正确的.我能够使用Oracle SQL Developer进行连接.我收到以下错误.任何帮助将不胜感激.

> INFO: Loaded JDBC driver: com.microsoft.sqlserver.jdbc.SQLServerDriver
Jul 24, 2012 2:38:39 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet dispatcher threw exception
java.sql.SQLException: No suitable driver found for jdbc:mysql://XX.1.1.XX:3306/dashboard
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:173)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:164)
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:149)
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:119)
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:381)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:455)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:463)
    at com.mvc.services.TransactionInfoService.getData(TransactionInfoService.java:39)
    at com.mvc.controllers.MainController.handleRequestInternal(MainController.java:29)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) …
Run Code Online (Sandbox Code Playgroud)

java mysql spring jdbc spring-mvc

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