Tag: spring data

使用带有jodatime对象的cassandra实体时构建中断

我正在使用spring-data-cassandra设置一个带弹簧启动的小项目。 当我在@Table对象上有joda time Datetime时,我意识到我的测试中断了。 堆栈显示如下错误: Caused by: org.springframework.data.cassandra.mapping.VerifierMappingExceptions: org.joda.time.Chronology: Cassandra entities must have the @Table, @Persistent or @PrimaryKeyClass Annotation 我的配置如下: @Configuration @EnableCassandraRepositories(basePackages =”com.myproject.cassandra.repository”) @ComponentScan(basePackages = “com.myproject.cassandra”) @EnableAutoConfiguration class CassandraConfiguration { private static ConfigContext confitConfig = ConfigContext.lookup(); //private static AdminContext confitAdmin = AdminContext.lookup(); DataSource cassandraDataSource static { confitConfig.register(DataSource.class); } Collection dataSources = confitConfig.list(DataSource.class) CassandraConfiguration() { cassandraDataSource […]

Spring Data REST:MongoDB存储库的自定义查询

我正在尝试从Spring指南创建自定义查询:根据参考4.4自定义实现 使用REST访问MongoDB数据 。 但是我的自定义方法不能从存储库的REST接口(/ user / search)中获得。 (例如,浏览器无法找到localhost:8080 / user / search / GetByKidsAge?age = 1) 有人可以帮我解决这个问题并给我一些建议吗? 非常感谢 !! 以下是我的代码: UserRepositoryCustom.java public interface UserRepositoryCustom { public List GetByKidsAge(@Param(“age”) int age); } UserRepositoryImpl.java public class UserRepositoryImpl implements UserRepositoryCustom { @Override public List GetByKidsAge(int age) { return /*perform query*/; } } UserRepository.java @RepositoryRestResource(collectionResourceRel = “user”, path = […]

JPA:将空的Fetch结果加入NULL空

我在User和GameMap之间有一对多的关系。 一个用户可以拥有许多地图。 用户类: // LAZY LOADED @OneToMany(cascade = CascadeType.ALL, mappedBy = “creater”) private final List maps = new ArrayList(); 但是,有时我需要急于加载地图。 为了避免在关闭Session之后出现LazyInitializationException ,我有两种检索用户的变体。 用户存储库: public interface UserRepository extends JpaRepository { Optional findById( Long id ); @Query(“SELECT u FROM User u JOIN FETCH u.maps WHERE u.id = (:id)”) public User findByIdEagerFetch( @Param(“id”) Long id ); } 问题: […]

使用Spring Data JPA自动转换参数

在我们的实体bean中,我们使用自定义ID格式,其中包含校验和以validationID实际上是否有效。 Ids看起来像ID827391738979 。 为了确保所有代码只使用正确的ID,我们在ID String周围创建了一个代码包装器: class ID { public ID(String id) { // parse and verify ID } public String toString() { return id; } } 所有代码都使用此ID对象。 但是在我们的实体中,我们将ID定义为String : class SomeEntity { @Column private String itsID; } 现在我们想使用Spring-Data-JPA通过它的id查询一些对象。 所以我们这样做: public SomeEntity findByItsID(ID itsId); 问题是,现在Spring Data JPA尝试将ID类型参数分配给查询,而查询当然需要一个String 。 是否可以让Spring Data JPA在将参数插入查询之前将参数转换为期望的类型(例如通过注册Spring转换器)? 或者,我们是否必须让方法采用这样的字符串: public SomeEntity findByItsId(String itsId); […]

onSave()(用于使用Hibernate / Spring Data Repositories保存的任何实体)

如果我的实体已计算字段应在保存到数据库之前更新(db insert或update )如何在Hibernate或Spring Data Repository save()之前挂钩方法调用

Spring Data(JPA)存储库是否是线程安全的? (又名SimpleJpaRepository线程安全)

我正在使用Spring Data(JPA)存储库来处理CRUD样板。 我这样定义我的存储库接口: import org.springframework.data.repository.CrudRepository; public interface FooRepository extends CrudRepository { public Foo findByXAndYAndZ(X x, Y y, Z z); } Spring然后自动神奇地生成我所述接口的实现。 我们得到的是一个代理,但我相信最终我们会得到一个org.springframework.data.jpa.repository.support.SimpleJpaRepository 。 如果底层目标类是线程安全的, 则 JdkDynamicAopProxy是线程安全的。 因此问题是: SimpleJpaRepository线程安全吗?

Spring Data Elasticsearch:具有相同文档的多索引

我正在使用spring-data-elasticsearch,一开始一切正常。 @Document( type = “products”, indexName = “empty” ) public class Product { … } public interface ProductRepository extends ElasticsearchRepository { … } 在我的模型中,我可以搜索产品。 @Autowired private ProductRepository repository; … repository.findByIdentifier( “xxx” ).getCategory() ); 所以,我的问题是 – 我在不同的索引中使用相同的Elasticsearch类型,我想对所有查询使用相同的文档。 我可以通过池处理更多连接 – 但我不知道如何实现这一点。 我希望有这样的东西: ProductRepository customerRepo = ElasticsearchPool.getRepoByCustomer(“abc”, ProductRepository.class); repository.findByIdentifier( “xxx” ).getCategory(); 是否可以在运行时使用不同的索引创建存储库? 非常感谢Marcel

Spring Data JPA – 是否可以对计算属性进行排序?

假设您有以下实体: @Entity public class Game { @Id @GeneratedValue private Integer id; private String name; private Calendar startTime; private int durationInSeconds; public GameStatus getStatus() { if( startTime.after(Calendar.getInstance())) { return GameStatus.SCHEDULED; } else { Calendar endTime = Calendar.getInstance(); endTime.setTime(startTime.getTime()); endTime.roll(Calendar.SECOND, durationInSeconds); if( endTime.after(Calendar.getInstance())) { return GameStatus.OPEN_FOR_PLAY; } else { return GameStatus.FINISHED; } } } } 如果我的GameRepository是PagingAndSortingRepository ,我怎样才能得到一个结果页面,按status属性排序? […]

使用JNDI在Spring Boot中配置多个DataSource

我想使用您的Application Server内置function管理多个DataSource,并使用JNDI访问它。 我使用Spring JPA数据进行Spring启动。 我能够为单个数据源配置application.properties: – spring.datasource.jndi-name=jdbc/customers 我在context.xml文件中的配置如下: – 一切正常。 但是当我无法配置两个数据源时。 我确信在context.xml文件中的配置: – 我对application.properties文件配置有疑问。 我尝试了以下选项但没有成功: – spring.datasource.jndi-name=jdbc/customers,jdbc/employee 有关多个数据源的JNDI,请告诉我有关Spring启动的任何详细信息。 我好几天都在寻找这种配置。 任何forms的建议或评论都会受到高度赞赏。 根据Spring Boot文档进行第二次试用 spring.datasource.primary.jndi-name=jdbc/customer spring.datasource.secondary.jndi-name=jdbc/project 配置类。 @Bean @Primary @ConfigurationProperties(prefix=”datasource.primary”) public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); } @Bean @ConfigurationProperties(prefix=”datasource.secondary”) public DataSource secondaryDataSource() { return DataSourceBuilder.create().build(); } 该应用程序无法启动。 虽然tomcat服务器正在启动。 日志中不会打印错误。 第三次试验: – 使用JndiObjectFactoryBean 我有以下application.properties spring.datasource.primary.expected-type=javax.sql.DataSource spring.datasource.primary.jndi-name=jdbc/customer spring.datasource.primary.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect spring.datasource.primary.jpa.show-sql=false […]

Spring Data Neo4J存储库findAll()导致nullpointerexception

我已经制作了一个包含我系统中所有人的简单存储库,一切似乎都运行良好。 我可以根据给定的键和值添加,删除甚至检索单个人,但由于某种原因,我无法直接检索存储在存储库中的所有人。 我试过使用findAll()方法,它应该返回一个iterable。 然后我尝试迭代迭代并将每个人存储在arraylist中,我希望函数返回。 public List getAllPersons() { Iterable p = personRepository.findAll(); System.out.println(“person count: ” + personRepository.count()); List persons = new ArrayList(); for (Person person : p) { System.out.println(“person”); persons.add(person); } return persons; } 打印行打印“3”,因此存储库不为空,但仍然在下面的错误中得到nullpointerexception。 apr 16, 2014 3:45:54 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [bmsapp] in context with path [/bmsapp] threw exception [Request […]