Tag: spring data

Java SE + Spring Data + Hibernate

我正在尝试使用Spring Data + Hibernate启动Java SE应用程序,并且到目前为止完成了以下操作: 配置文件 @Configuration @PropertySource(“classpath:hibernate.properties”) @EnableJpaRepositories @EnableTransactionManagement public class JpaConfiguration { private static final String PROPERTY_NAME_DATABASE_DRIVER = “db.driver”; private static final String PROPERTY_NAME_DATABASE_PASSWORD = “db.password”; private static final String PROPERTY_NAME_DATABASE_URL = “db.url”; private static final String PROPERTY_NAME_DATABASE_USERNAME = “db.username”; private static final String PROPERTY_NAME_HIBERNATE_DIALECT = “hibernate.dialect”; private static final String PROPERTY_NAME_HIBERNATE_SHOW_SQL = […]

制作spring-data-mongodb多租户

在最后一个八月sbzoom的post中提出了一个使spring-data-mongoDB多租户的解决方案: “你必须创建自己的RepositoryFactoryBean。这是Spring Data MongoDB参考文档中的示例。你仍然需要实现自己的MongoTemplate并延迟或删除ensureIndexes()调用。但是你必须重写几个类来确保调用你的MongoTemplate而不是Spring。“ 有没有人实现这个或类似的东西?

在使用Spring Data和Hibernate时,如何正确执行后台线程?

我正在构建一个使用Spring Data和Hibernate的简单Tomcat webapp。 有一个终点可以完成很多工作,因此我想将工作卸载到后台线程,以便在完成工作时Web请求不会挂起10分钟以上。 所以我在一个组件扫描包中写了一个新服务: @Service public class BackgroundJobService { @Autowired private ThreadPoolTaskExecutor threadPoolTaskExecutor; public void startJob(Runnable runnable) { threadPoolTaskExecutor.execute(runnable); } } 然后在Spring中配置ThreadPoolTaskExecutor : 这一切都很有效。 但问题来自Hibernate。 在我的runnable中,查询只有一半工作。 我可以: MyObject myObject = myObjectRepository.findOne() myObject.setSomething(“something”); myObjectRepository.save(myObject); 但如果我有延迟加载字段,它会失败: MyObject myObject = myObjectRepository.findOne() List lazies = myObject.getLazies(); for(Lazy lazy : lazies) { // Exception … } 我收到以下错误: org.hibernate.LazyInitializationException: failed […]

您是否应该在JPA中为每个表创建一个存储库?

您是否应该在JPA中为每个表创建一个存储库? 如果没有,您如何解决存储库数据库中的generics? 例如,下面是StoreRepository 。 它处理Store对象上的CRUD操作。 如果我希望存储库也保存StoreEvent对象,我将如何更改下面的接口以容纳这两个对象? @Repository public interface StoreRepository extends JpaRepository { public Store findByGuid(String guid); }

如何与Spring Data REST和JPA保持双向关系?

使用Spring Data REST。 如果您具有oneToMany或ManyToOne关系,则PUT操作在“非拥有”实体上返回200,但实际上不会保留已连接的资源。 示例实体。 @Entity(name = ‘author’) @ToString class AuthorEntity implements Author { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) Long id String fullName @ManyToMany(mappedBy = ‘authors’) Set books } @Entity(name = ‘book’) @EqualsAndHashCode class BookEntity implements Book { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) Long id @Column(nullable = false) String title @Column(nullable = false) String isbn @Column(nullable = […]

Spring Boot,Spring Data JPA,带有多个DataSources

我正在尝试使用Spring Boot和Spring Data JPA将每个@Repositories连接到不同的DataSource。 我使用以下内容http://xantorohara.blogspot.com/2013/11/spring-boot-jdbc-with-multiple.html作为参考。 以下是我试图使用Spring Data JPA实现类似解决方案时使用的代码。 CustomerDbConfig.java (第一个数据源连接) @Configuration @EnableJpaRepositories( entityManagerFactoryRef = “orderEntityManager”, transactionManagerRef = “orderTransactionManager”, basePackages = {“com.mm.repository.customer”}) public class CustomerDbConfig { @Bean(name = “customerEntityManager”) public LocalContainerEntityManagerFactoryBean entityManagerFactory(){ LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); em.setDataSource(dataSource()); em.setPackagesToScan(new String[] {“com.mm.domain.customer”}); JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); em.setJpaVendorAdapter(vendorAdapter); em.setJpaProperties(additionalJpaProperties()); em.setPersistenceUnitName(“customerPersistence”); em.setPackagesToScan(“com.mm.domain.customer”); return em; } Properties additionalJpaProperties(){ Properties […]

具有任意AND子句的动态spring数据jpa存储库查询

我正在使用Spring data jpa repositories ,需要为不同的字段提供搜索function。 在搜索之前输入字段是可选的。我有5个字段表示EmployeeNumber , Name , Married , Profession和DateOfBirth 。 这里我只需要用户查询给定的值,其他字段应该被忽略.Ex, Input : EmployeeNumber: ,Name:St,Married: ,Professsion:IT,DateOfBirth: Query : Select * from Employee e where Name like ‘St%’ and Profession like ‘IT%’; Input : EmployeeNumber:10,Name: ,Married: ,Professsion:IT,DateOfBirth: Query : Select * from Employee e where EmployeeNumber like ‘10%’ and Profession like ‘IT%’; 所以我们在这里考虑输入和查询的值。 […]