我正在使用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) 通过Spring Boot参考手册,我们可以通过几种方式在应用程序启动时导入数据.结合内存数据库,这对于测试非常方便.
选项是创建一个名为import.sql
Hibernate的文件,或者创建一个名为的文件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
.我可以接受这个,但它不是一个真正的解决方案.
在哪里可以找到R函数的所有合法时间名称列表as.POSIXct
?
as.POSIXct("1970-01-01",tz="CST")
生成"CST"(中央标准时间)未知的警告.
我真的想使用YAML配置进行Spring Boot,因为我发现单个文件显示我的不同配置文件中有哪些属性是活动的,这是非常可读和有用的.不幸的是,我发现设置属性application.yml
可能相当脆弱.
比如使用制表符而不是空格会导致属性不存在(据我所见,没有警告),而且由于我的YAML存在一些未知问题,我经常发现我的活动配置文件没有被设置.
所以我想知道是否有任何钩子可以让我掌握当前活动的配置文件和属性,以便我可以记录它们.
同样,如果application.yml
包含错误,是否有办法导致启动失败?要么我自己验证YAML,要么我可以杀死启动过程.
例如: 2015-01-17T18:23:02+00:00
由于字符串的某些组成部分被认为是"有效",因此在使用正则表达式时会遇到一些问题,因此可能不需要.
此外,字符串可以格式化为:2015-01-17T18:23:02Z
轻微抛弃我
先谢谢你们.
我正在关注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) 在iOS 8中以横向模式旋转模拟器时,状态栏出现了问题,而在iOS 7模拟器中工作正常.
我该怎么做才能解决这个问题?
我想将用户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)
所以转移是成功的,但我怎样才能收到片段中的数据呢?
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 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)
......似乎没有任何事情发生.
我有设置SessionConnectedEvent
和SessionSubscribeEvent
听众,显示:
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
到目标解析器.但是,服务器上不会记录任何其他内容,并且客户端不会收到该消息.
所以我很想确定:
如果有任何其他信息(即代码)可以提供帮助诊断问题,请告诉我.问题已经很长了,所以我试图避免使用过多的无关代码来混淆它.
我正在使用: