小编Ste*_*eve的帖子

spring data jpa @query和pageable

我正在使用Spring Data JPA,当我@Query用来定义查询WITHOUT时 Pageable,它可以工作:

public interface UrnMappingRepository extends JpaRepository<UrnMapping, Long> {
    @Query(value = "select * from internal_uddi where urn like %?1% or contact like %?1%", 
           nativeQuery = true)
    List<UrnMapping> fullTextSearch(String text);
}
Run Code Online (Sandbox Code Playgroud)

但是如果我添加第二个参数Pageable,那么@Query它将不起作用,Spring将解析方法的名称,然后抛出异常 No property full found.这是一个错误吗?

public interface UrnMappingRepository extends JpaRepository<UrnMapping, Long> {
    @Query(value = "select * from internal_uddi where urn like %?1% or contact like %?1%",
           nativeQuery = true)
    Page<UrnMapping> fullTextSearch(String text, Pageable pageable);
}
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa spring-data-jpa

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

Spring Boot中的多个SQL导入文件

通过Spring Boot参考手册,我们可以通过几种方式在应用程序启动时导入数据.结合内存数据库,这对于测试非常方便.

选项是创建一个名为import.sqlHibernate的文件,或者创建一个名为的文件data.sql,该文件将被Spring JDBC选中.这两个对我来说都很好.

但是,我想稍微分解一下我的项目,所以我目前有一个核心域模型,其中有一些方便的导入来配置核心数据,例如一些用户,这在任何地方都使用.我还有一些特定于功能的项目,它们可以重复使用相同的基础数据导入,但也可以导入一些特定于该功能的附加数据.

这是事情不顺利的地方.

我找到了上一个问题的答案,其中Pascal Thivent提到该hibernate.hbm2ddl.import_files属性可用于定义文件列表,从Hibernate 3.6.0.Beta1开始.鉴于我的项目正在导入4.3.1.Final,我想也许这将是可用的.

所以我尝试将以下内容添加到Spring Boot中application.properties:

spring.jpa.hibernate.hbm2ddl.import_files=/another-import.sql
Run Code Online (Sandbox Code Playgroud)

和:

hibernate.hbm2ddl.import_files=/another-import.sql
Run Code Online (Sandbox Code Playgroud)

不幸的是,这些都不会导致导入运行.

所以我想知道我是否只是弄乱了上面的属性(非常可能).或者还有其他我需要做的事情吗?

请注意,作为一种解决方法,我发现Spring JDBC似乎data.sql在Hibernate 运行后运行import.sql.因此,只要我不需要两个以上的导入,我就可以使用import.sql基础数据,然后将项目特定的导入放入data.sql.我可以接受这个,但它不是一个真正的解决方案.

hibernate spring-boot

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

R strptime/as.POSIXct中的未知时区名称

在哪里可以找到R函数的所有合法时间名称列表as.POSIXct

as.POSIXct("1970-01-01",tz="CST") 生成"CST"(中央标准时间)未知的警告.

timezone r strptime

27
推荐指数
4
解决办法
3万
查看次数

如何在Spring Boot应用程序中记录活动配置?

我真的想使用YAML配置进行Spring Boot,因为我发现单个文件显示我的不同配置文件中有哪些属性是活​​动的,这是非常可读和有用的.不幸的是,我发现设置属性application.yml可能相当脆弱.

比如使用制表符而不是空格会导致属性不存在(据我所见,没有警告),而且由于我的YAML存在一些未知问题,我经常发现我的活动配置文件没有被设置.

所以我想知道是否有任何钩子可以让我掌握当前活动的配置文件和属性,以便我可以记录它们.

同样,如果application.yml包含错误,是否有办法导致启动失败?要么我自己验证YAML,要么我可以杀死启动过程.

spring yaml spring-boot

17
推荐指数
4
解决办法
2万
查看次数

正则表达式随时间验证正确的ISO8601日期字符串

例如: 2015-01-17T18:23:02+00:00

由于字符串的某些组成部分被认为是"有效",因此在使用正则表达式时会遇到一些问题,因此可能不需要.

此外,字符串可以格式化为:2015-01-17T18:23:02Z轻微抛弃我

先谢谢你们.

regex

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

由于错误绑定扫描<jar-file>而创建entityManagerFactory时出错

我正在关注http://spring.io/guides/tutorials/data/3 ; 我不确定我做错了什么,但我继续得到我不理解的异常.我尝试使用相同的例外搜索问题但无济于事.

堆栈跟踪: http ://pastebin.com/WYPqS6da

PersistenceConfig.java

@Configuration
@EnableJpaRepositories
@EnableTransactionManagement
public class PersistenceConfig {

    @Bean
    public DataSource dataSource() throws SQLException {
        EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
        return builder.setType(EmbeddedDatabaseType.HSQL).build();
    }

    @Bean
    public EntityManagerFactory entityManagerFactory() throws SQLException {
        HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
        vendorAdapter.setDatabase(Database.HSQL);
        vendorAdapter.setGenerateDdl(true);

        LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
        factory.setJpaVendorAdapter(vendorAdapter);
        factory.setPackagesToScan("com.scrumster.persistence.domain");
        factory.setDataSource(dataSource());
        factory.afterPropertiesSet();

        return factory.getObject();
    }

    @Bean
    public EntityManager entityManager(EntityManagerFactory entityManagerFactory) {
        return entityManagerFactory.createEntityManager();
    }

    @Bean
    public PlatformTransactionManager transactionManager() throws SQLException {
        JpaTransactionManager txManager = new JpaTransactionManager();
        txManager.setEntityManagerFactory(entityManagerFactory());
        return …
Run Code Online (Sandbox Code Playgroud)

java spring gradle

13
推荐指数
4
解决办法
2万
查看次数

状态栏的问题在ios 8中以横向模式隐藏,并且在xos 6中发布ios 8后尝试在ios 7中正常工作

在iOS 8中以横向模式旋转模拟器时,状态栏出现了问题,而在iOS 7模拟器中工作正常.

我该怎么做才能解决这个问题?

statusbar xcode6 ios8

10
推荐指数
2
解决办法
5842
查看次数

在片段之间传递数据

我想将用户ID从主Activity转移到片段.

所以在主要活动中,我做:

 Fragment fragment = new Fragment();
 final Bundle bundle = new Bundle();
 bundle.putString("id_User", id);
 Log.i("BUNDLE", bundle.toString());
 fragment.setArguments(bundle); 
Run Code Online (Sandbox Code Playgroud)

在日志中我可以看到

BUNDLE : Bundle[{id_User=1}]
Run Code Online (Sandbox Code Playgroud)

在片段中,我测试它 onCreate

Bundle arguments = getArguments();
if (arguments != null)
{
Log.i("BUNDLE != null","NO NULL");
} else {
Log.i("BUNDLE == null","NULL");
}
Run Code Online (Sandbox Code Playgroud)

我有

BUNDLE == null: NULL
Run Code Online (Sandbox Code Playgroud)

所以转移是成功的,但我怎样才能收到片段中的数据呢?

android bundle android-fragments

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

有没有办法为Spring HATEOAS`ControllerLinkBuilder`设置主机和端口?

Spring HATEOAS提供了方便的方法ControllerLinkBuilder来创建指向控制器方法的链接,这些链接将作为hrefs添加到返回给客户端的JSON / XML中。例如:

resource.add(linkTo(methodOn(FooController.class)
    .findFoo(entity.getClient().getId()))
    .withRel("show"));
Run Code Online (Sandbox Code Playgroud)

...可能会生成JSON,如下所示:

{
  "name":"foo", 
  "links":[
    {"rel":"show","href":"http://111.11.11.111:28080/foos/1"}
  ]
}
Run Code Online (Sandbox Code Playgroud)

然而...

我倾向于通过反向代理访问我的服务。我想大多数人可能都会这样。这使我可以在不同的端口上运行多个服务,但可以通过相同的基本URL来访问它们。不幸的是,通过代理访问意味着Spring HATEOAS生成的URL不是有效访问资源的URL。

现在,我可以对链接进行硬编码,但这非常脆弱。具有ControllerLinkBuilder基于我的控制器生成URL @RequestMapping配置对我很有用,因为它避免了我的链接获得同步的与现实的风险。

所以我想知道是否存在可以用来强制主机和端口值的属性。我正在使用Spring Boot,因此理想情况下可以application.properties在每个环境中将其添加到文件中的属性。

注意:

由于此问题似乎是由Spring中的错误引起的,所以我可能应该指出,我使用的是Spring Boot 1.0.2.RELEASE。

spring-hateoas spring-boot

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

诊断Spring WebSocket用户目标的问题

我无法让用户目的地使用Spring STOMP websockets.

我似乎有一般的配置工作.例如,以下工作.

客户:

svc.stompClient.subscribe('/queue/messages', msg );
Run Code Online (Sandbox Code Playgroud)

服务器:

stompTemplate.convertAndSend("/queue/messages", msg);
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试发送到特定用户目标时,如下所示:

客户:

svc.stompClient.subscribe('/user/queue/messages', msg );
Run Code Online (Sandbox Code Playgroud)

服务器:

stompTemplate.convertAndSendToUser(username, "/queue/messages", msg);
Run Code Online (Sandbox Code Playgroud)

......似乎没有任何事情发生.

我有设置SessionConnectedEventSessionSubscribeEvent听众,显示:

SessionConnectedEvent[GenericMessage [
    payload=byte[0], 
    headers={
        simpMessageType=CONNECT_ACK, 
        simpConnectMessage=GenericMessage [
            payload=byte[0], 
            headers={
                simpMessageType=CONNECT, 
                stompCommand=CONNECT, 
                nativeHeaders={
                    accept-version=[1.1,1.0], 
                    heart-beat=[10000,10000]
                }, 
                simpSessionAttributes={}, 
                simpSessionId=erlz0dm6
            }
        ], 
        simpSessionId=erlz0dm6
    }
]]

SessionSubscribeEvent[GenericMessage [
    payload=byte[0], 
    headers={
        simpMessageType=SUBSCRIBE, 
        stompCommand=SUBSCRIBE, 
        nativeHeaders={
            id=[sub-0], 
            destination=[/user/queue/messages]
        }, 
        simpSessionAttributes={}, 
        simpSubscriptionId=sub-0, 
        simpSessionId=erlz0dm6, 
        simpDestination=/user/queue/messages
    }
]]
Run Code Online (Sandbox Code Playgroud)

在客户端,我看到以下记录:

 >>> SUBSCRIBE
id:sub-0
destination:/user/queue/messages
Run Code Online (Sandbox Code Playgroud)

通过该sendToUser方法跟踪某些方法,我可以看到它正在传递/user/myusername/queue/messages到目标解析器.但是,服务器上不会记录任何其他内容,并且客户端不会收到该消息.

所以我很想确定:

  • 是否有我可以启用的调试日志记录,这可能有助于诊断问题?
  • 我可能遇到过任何常见的配置陷阱吗?

如果有任何其他信息(即代码)可以提供帮助诊断问题,请告诉我.问题已经很长了,所以我试图避免使用过多的无关代码来混淆它.

我正在使用:

  • Spring …

java spring stomp spring-boot spring-websocket

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