小编And*_*res的帖子

spring-data-rest发布的自定义jpa存储库方法

我已经在jpa存储库中添加了一个自定义方法,详见http://docs.spring.io/spring-data/data-jpa/docs/1.0.x/reference/html/#repositories.custom-implementations

据我所知,当我使用spring-data-rest时,这个方法不会暴露.有没有什么办法可以将它作为spring-data-rest生成的REST API的一部分发布(不用自己创建Spring MVC Controller)?

java spring spring-data spring-data-jpa spring-data-rest

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

Spring Data Rest - 具有默认值的参数

我创建了以下@RepositoryRestResource查询,我想为其余的api创建动态查询.所以基本上我想做的事情如下:

myHost/myApp/data/search/all?name=me&age=20&address=myhome&etc=etc
Run Code Online (Sandbox Code Playgroud)

所以我在下面创建了查询:

   @Query("Select t from Data t " +
            "where " +
            "t.name like :name AND " +
            "t.age = :age AND " +
            "t.address = :address AND " +
            "t.etc= :etc"
    @RestResource(path = "all", rel = "all")
    Page findByAll(@Param("name") String name, @Param("age") String age,
            @Param("address") String address, @Param("etc") String etc, Page page);
Run Code Online (Sandbox Code Playgroud)

显然其中一些可能尚未输入.有没有办法在存储库中定义默认值?所以例如我想要name一个默认值%.

我不完全确定这种方法对于我想要做的是正确的,所以欢迎任何替代建议.

java spring spring-data-rest

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

Spring-HATEOAS没有扩展ResourceSupport

我正在构建一个REST API.我有一个由bean组成的域模型,而不能扩展ResourceSupport.使用Spring-HATEOAS将它们作为资源公开的最佳方法是哪种?

如果不可能,这是在bean生成的JSON上包含链接的最佳方式?

rest spring spring-mvc hateoas spring-hateoas

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

Spring可缓存不同步

我有一个单例类(@Service annotated).该类有一个需要200/300ms才能执行的方法.

此方法使用@Cacheable和synchronized进行注释.

@Cacheable(value="nextPlaying", key = "#startingFrom.getYear() + #startingFrom.getMonth() + #startingFrom.getDay() + #startingFrom.getHours() + #startingFrom.getMinutes() + #locale.getLanguage()")
public synchronized List<Match> getNextPlaying(Date startingFrom, Locale locale)
Run Code Online (Sandbox Code Playgroud)

通过启动调用此方法的多个线程,我看到对于这些200/300ms,直到结果未缓存,它会一次又一次地执行该方法,直到缓存为止.似乎@Cacheable注释没有考虑到同步 ......这是一个错误吗?

java spring spring-cache

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

Spring 启动应用程序没有创建胖(超级)jar

我正在按照这里的示例进行操作:https : //www.baeldung.com/spring-boot-start

当我构建应用程序时,我没有得到包含所有依赖项的胖 jar,而只是一个包含项目编译类的 jar。

我粘贴下面的 pom.xml。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.baeldung</groupId>
    <artifactId>spring-boot-bootstrap</artifactId>
    <packaging>jar</packaging>
    <name>spring-boot-bootstrap</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <artifactId>parent-boot-2</artifactId>
        <groupId>com.baeldung</groupId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../parent-boot-2</relativePath>
    </parent>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cloud-connectors</artifactId>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId> …
Run Code Online (Sandbox Code Playgroud)

java spring spring-boot

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

如何在没有实体(因此没有存储库)的情况下在 Spring Data JPA 中调用存储过程?

通过使用以下代码,我可以使用 Spring Data JPA 调用存储过程。这是存储过程的映射,包含在用@Entity 注解的类中

@NamedStoredProcedureQuery(name = "testProc0", procedureName = "testproc", parameters = {
        @StoredProcedureParameter(mode = ParameterMode.IN, name = "input", type = String.class),
        @StoredProcedureParameter(mode = ParameterMode.OUT, name = "output", type = String.class) })
Run Code Online (Sandbox Code Playgroud)

依次调用存储过程的方法,在前面提到的类对应的repository中定义,有以下两行:

@Procedure("testproc")
String testProc(String input);
Run Code Online (Sandbox Code Playgroud)

现在的问题是:我想创建一个只调用存储过程的模块。但是,这个新模块不会有任何用@Entity 注释的类,因此没有存储库。这可能吗?如果是,我应该把定义和调用存储过程的代码放在哪里?

java spring stored-procedures spring-data spring-data-jpa

5
推荐指数
0
解决办法
3618
查看次数

什么时候使用弱引用?

我了解 Java 弱引用是什么。我想知道的是它通常用于解决哪种具体问题。有没有包含它们的模式?

java weak-references

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

MuleStudio工作室:工作室目标未能执行

我在Mule Studio工作区(从Mule Studio中)复制/粘贴了一个工作项目来创建一个新项目.在那之后,我可以在新项目上进行mvn clean安装,一切正常.

然后,在对pom进行任何修改(即添加一个空行)后,我收到以下错误(在项目名称上的感叹号上).我仍然可以毫无错误地执行mvn clean install并获得我可以部署的jar.但是,我想消除错误.

在项目ProjectName,studio:studio目标无法执行时构建问题,检查Maven Output控制台是否有日志

编辑

这是我在控制台中可以阅读的内容

[ERROR] No plugin found for prefix 'studio' in the current project and in the plugin groups [org.apache.maven.plugins, mojo.codehaus.maven.plugins, org.codehaus.mojo] available from the repositories [local (C:\_jde\maven\repo), nexus (http://nexusserver00:8080/nexus/content/groups/public)] -> [Help 1]
org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException: No plugin found for prefix 'studio' in the current project and in the plugin groups [org.apache.maven.plugins, mojo.codehaus.maven.plugins, org.codehaus.mojo] available from the repositories [local (C:\_jde\maven\repo), nexus (http://nexusserver00:8080/nexus/content/groups/public)]
    at org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolve(DefaultPluginPrefixResolver.java:94)
    at org.apache.maven.lifecycle.internal.MojoDescriptorCreator.findPluginForPrefix(MojoDescriptorCreator.java:262)
    at org.apache.maven.lifecycle.internal.MojoDescriptorCreator.getMojoDescriptor(MojoDescriptorCreator.java:222)
    at org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:106)
    at org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:86)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:98) …
Run Code Online (Sandbox Code Playgroud)

java mule maven mule-studio

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

如何在 Spring JMS 监听器中从 JMS 消息获取自定义属性

我知道您可以通过以下方式访问 Spring JMS 侦听器中的标准标头:

public void receive(String in, @Header(JmsHeaders.MESSAGE_ID) String messageId) 
Run Code Online (Sandbox Code Playgroud)

是否有任何类似的注释用于访问自定义属性?

java spring jms spring-jms

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

从使用@Cacheable注释的方法中清除缓存

我有一个用 @Cacheable 注释的方法。如果方法内部捕获到异常,我希望清除缓存。但是,缓存似乎是在清除缓存的行之后执行的方面加载的。因此,当方法中捕获到异常时,即使清除了缓存,空字符串结果仍保留在缓存中。

我应该从哪里清除缓存?

@Cacheable("myCache") 
public String myMethod() {
    String result="";
    try {
        result = doSomething();
    } catch (Exception e) {
        cacheManager.getCache("myCache").clear();
    }
    return token;
}
Run Code Online (Sandbox Code Playgroud)

java spring caching spring-cache

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