我正在尝试在 SpringData 本机查询中使用 Postgres jsonb 字符串存在运算符。
SpringData 方法示例:
@Query(value = "SELECT t.id \n"
+ " FROM task AS t \n"
+ " WHERE (t.worker_ids \\? :workerId)\n"
+ " ORDER BY t.created_at\n",
nativeQuery = true)
Optional<String> findMatchingTaskId(@Param("workerId") String workerId);
Run Code Online (Sandbox Code Playgroud)
哪里worker_ids是数据库类型JSOB的。我试图排除问号,\\但仍然出现以下错误:
org.postgresql.util.PSQLException: No value specified for parameter 2.
有没有办法将此运算符与 spring 数据本机查询一起使用?
我正在尝试从 RedisClusterConfiguration(下面给出的伪代码)创建 JedisConnection 工厂,但我面临编译时错误
无法解析 redis.clients.jedis.JedisShardInfo 类型。它是从所需的 .class 文件间接引用的。
代码片段:
RedisClusterConfiguration clusterConfiguration = new RedisClusterConfiguration(clusterList);
return new JedisConnectionFactory(clusterConfiguration);
Run Code Online (Sandbox Code Playgroud)
正在使用的 Spring Data Redis 版本:2.0.6.RELEASE
我的问题是我无法创建在内存数据库中使用的测试。所有的时间都有错误,例如:
引起:java.lang.IllegalStateException:无法检索@EnableAutoConfiguration 基础包
我如何使用 H2 内存数据库进行测试?
实体类:
@Entity
@Table(name = "names")
public class Names{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "name_id")
private int id;
@Column(name = "name")
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
Run Code Online (Sandbox Code Playgroud)
存储库类:
@Repository("namesRepository")
public interface NamesRepository extends JpaRepository<Names, Long> {
Names findByName(String name);
List<Names> findAll();
}
Run Code Online (Sandbox Code Playgroud)
数据库配置类:
@Configuration …Run Code Online (Sandbox Code Playgroud) 我正在尝试基于实体生成模式表。但是没有创建表。怎么了?
实体示例:
@Entity
@NoArgsConstructor
@Getter @Setter
public class User {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
public Long id;
public String username;
public String password;
public User(String username, String password) {
this.username = username;
this.password = password;
}
public User(String username) {
this(username, username + "pass");
}
}
Run Code Online (Sandbox Code Playgroud)
application.properties:
spring.datasource.url=jdbc:postgresql://localhost:5432/dbtest
spring.datasource.username=vssekorin
spring.datasource.password=
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=update
Run Code Online (Sandbox Code Playgroud)
依赖项:
compile('org.springframework.boot:spring-boot-starter-data-jpa')
runtime('com.h2database:h2')
compile('org.telegram:telegrambots:3.6.1')
runtime('org.postgresql:postgresql')
compileOnly('org.projectlombok:lombok')
testCompile('org.springframework.boot:spring-boot-starter-test')
Run Code Online (Sandbox Code Playgroud)
警告: GenerationTarget encountered exception accepting command : Error executing DDL via JDBC Statement
在一个新项目中,我必须Cassandra用作持久层。
我正在使用Spring Data存储库来运行查询。我的实体如下所示
@Table("my_customer")
public class CustomerEntity {
@PrimaryKey
private Long id;
....
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用repository.count()它获取此表中的行数时会引发以下异常
org.springframework.data.cassandra.CassandraInvalidQueryException: Query; CQL [SELECT count(*) FROM customerentity;]; unconfigured table customerentity; nested exception is com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured table customerentity
at org.springframework.data.cassandra.core.cql.CassandraExceptionTranslator.translate(CassandraExceptionTranslator.java:139)
at org.springframework.data.cassandra.core.cql.CassandraAccessor.translate(CassandraAccessor.java:334)
at org.springframework.data.cassandra.core.cql.CqlTemplate.translateException(CqlTemplate.java:732)
at org.springframework.data.cassandra.core.cql.CqlTemplate.query(CqlTemplate.java:298)
Run Code Online (Sandbox Code Playgroud)
似乎 spring 没有检测@Table("my_customer")到运行查询中提到的表名。它应该在查询中使用my_customer而不是customerentity作为表名。
难道我做错了什么?它适用JPA于关系数据库的存储库。我也试过在@Entity(name = "my_customer")没有运气的情况下注释实体类。(我知道它只会影响CQL/JPQL)
我有使用问题@PrePersist,并@PreUpdate在MongoDB中我的实体有有像createAt和updateAt,一切都做工精细元场,如果它定义了一个超类@Entity,但它似乎不工作@Document。那么,什么功能,我可以使用类似的工作,@PrePersist并@PreUpdate为蒙戈实体的家伙?这是我的超类
@EntityListeners(AuditingEntityListener.class)
public class ItemDocument implements Serializable {
private static final long serialVersionUID = 5894122627332059602L;
@Id
private UUID id;
@Field("created_at")
@CreatedDate
private long created_at;
@Field("created_by")
private String created_by;
@Field("updated_at")
@LastModifiedDate
private long updated_at;
@Field("updated_by")
private String updated_by;
@PrePersist
protected void onPersist() {
this.created_at = new Date().getTime();
this.updated_at = this.created_at;
}
/**
* On update.
*/
@PreUpdate
protected void onUpdate() {
this.updated_at = new Date().getTime();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的实体
@Document(collection …Run Code Online (Sandbox Code Playgroud) 我正在使用 org.springframework.data.mongodb.core.MongoOperations 来存储 MongoDB 文档。
@Document(collection = "api_response")
public class ApiResponse {
private String dealNumber; // deal_Number
private String systemCode; // system_Code
}
ApiResponse response = new ApiResponse();
mongoOperations.save(response);
Run Code Online (Sandbox Code Playgroud)
它被正确保存。我需要使用不同的键而不是实际的属性名称。而不是 dealNumber,它应该是 deal_Number 作为键。
是否可以?
是否可以在 Spring Data MongoDB 中排除嵌套文档的字段?
如果尝试过
query.fields().exclude("user.password");
Run Code Online (Sandbox Code Playgroud)
但那以洞用户文件结尾被排除。
我正在使用 spark-sql 2.4.1、spark-cassandra-connector_2.11-2.4.1.jar 和 java8。当我试图从表中获取数据时,我遇到了
java.io.IOException: Failed to write statements to keyspace1.model_vals. The
latest exception was
An unexpected error occurred server side on cassandra-node1: com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.RuntimeException: org.apache.cassandra.exceptions.ReadTimeoutException: Operation timed out - received only 0 responses.
Run Code Online (Sandbox Code Playgroud)
那么如何从火花代码建立到 Cassandra db 的区域/直流感知连接?
YML
现有的
spring:
data:
cassandra:
keyspace-name: raproduct
contact-points:
- cassandra-node1
- cassandra-node2
port: 9042
Run Code Online (Sandbox Code Playgroud)
变成
spring:
data:
cassandra:
connection:
local_dc: southeast-1
keyspace-name: raproduct
contact-points:
- cassandra-node1
- cassandra-node2
port: 9042
Run Code Online (Sandbox Code Playgroud)
题
但它没有反映/应用更改后的“local_dc”。如何在 spring-data 中做到这一点?
cassandra spring-data datastax-java-driver apache-spark spring-data-cassandra
在我的测试项目中,由于跟随错误,Spring容器无法创建扩展JpaRepository的bean.
引起:org.springframework.beans.factory.BeanCreationException:创建名为'srSvcInfoMtrRepository'的bean时出错:FactoryBean在创建对象时抛出异常; 嵌套异常是 java.lang.NoSuchMethodError: javax.persistence.EntityManager.getMetamodel()Ljavax/persistence/metamodel/Metamodel;
这可能是与JPA版本相关的问题.
我在persistence.xml中的eclipelink2.0(org.eclipse.persistence.jpa.PersistenceProvider)中指定了某些persistenceProvider.
你对这个问题有什么看法吗?
堆栈跟踪
2012-05-14 09:11:08错误捕获异常,同时允许TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@112da40]准备测试实例 *> [net.tjjang.learn.spring_jpa.test.SrSvcInfoMtrTest @ b6d6ab] java.lang.IllegalStateException:无法在org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:157)中加载ApplicationContext 在org.springframework.test.work.conring框架上的org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:109)org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:75) org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:211)中的.TestContextManager.prepareTestInstance(TestContextManager.java:321)org.springframework.test.context.junit4.SpringJUnit4ClassRunner $ 1.runReflectiveCall(SpringJUnit4ClassRunner. java:288)在org.springframework org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:290)的org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) org.junit.runners.BlockJUnit4ClassRunner中的.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231).runChild(BlockJUnit4ClassRunner.java:49)org.junit.runners.ParentRunner $ 3.run(ParentRunner.java:193)org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:52)org.junit. runners.ParentRunner.runChildren(ParentRunner.java:191)org.junit.runners.ParentRunner.access $ 000(ParentRunner.java:42)org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:184)at org org.junit.runners上的org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)中的.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) .garentRunner.run(ParentRunner.java:236)位于org.eclipse.joutt.internal.junit4.runner.JUnit4TestReference.run的org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174)中(JUnit4TestReference) .java:50)在org.eclipse.jdt.internal的org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)位于org.eclipse.jdt.internal.junit.runner的org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)的.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) .RemoteTestRunner.run(RemoteTestRunner.java:390)at or.e.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 引起:org.springframework.beans.factory.BeanCreationException:创建名为'srSvcInfoMtrRepository'的bean时出错:FactoryBean在创建对象时抛出异常; 嵌套异常是java.lang.NoSuchMethodError:javax.persistence.EntityManager.getMetamodel()Ljavax/persistence/metamodel/Metamodel; org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149)位于org.springframework.beans.factory的org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102) .support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1441)org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:305)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory) .java:193)org.springframework上的org.springframework.bens.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913). org.springframewor上的context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)k.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:103)位于org.springframework.test.context.support的org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:1).在org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:148)的org.springframework.test.context.TestContext.loadApplicationContext(TestContext.java:124)中委托SmartContextLoader.loadContext(DelegatingSmartContextLoader.java:228).还有24个 >引起:java.lang.NoSuchMethodError:javax.persistence.EntityManager.getMetamodel()Ljavax/persistence/metamodel/Metamodel;* at org.springframework.data.jpa.repository.support.JpaEntityInformationSupport.getMetadata(JpaEntityInformationSupport.java:56 )org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getEntityInformation(JpaRepositoryFactory.java:145)org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:83)at org. springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:66)位于org.springframework.data的org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:146). repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:120)at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport).java:39)at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)
JpaRepository类()
package net.tjjang.learn.spring_jpa.repositories;
import net.tjjang.learn.spring_jpa.domain.SrSvcInfoMtr;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.transaction.annotation.Transactional;
@Transactional(readOnly = true)
public interface SrSvcInfoMtrRepository extends JpaRepository<SrSvcInfoMtr, String> {
Page<SrSvcInfoMtr> findBySvc_nm(String …Run Code Online (Sandbox Code Playgroud) spring-data ×10
spring ×4
cassandra ×2
java ×2
mongodb ×2
postgresql ×2
spring-boot ×2
apache-spark ×1
eclipselink ×1
hibernate ×1
jedis ×1
jpa ×1
redis ×1