标签: spring-data

如果使用多个模块,Spring Data如何知道wicht存储以支持存储库?

在Spring Data项目中,如果我正在使用多种类型的存储库,即JPA存储库和Mongo存储库,并且如果我要扩展,CrudRepository那么Spring Data如何知道为该存储库选择哪个存储?它可以使用JPA或Mongo。它是基于在每个持久实体上添加的注释@Document还是@Entity

jpa mongodb spring-data spring-data-jpa

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

无法将Spring数据的依赖项添加到Spring引导中

我试图从Spring引导指南开始,并手动包含Spring-data的依赖项.

我的IDE是eclipse,我选择使用Gradle来构建项目.

双方build.gradlepom.xml已被修改,但仍然日食发现不能春季数据的库(例如org.springframework.data.*在编译过程中).

以下是我build.gradlepom.xml.

有人可以建议我哪里出错吗?谢谢!!

的build.gradle

buildscript {
    repositories {
            maven { url "http://repo.spring.io/libs-release" }
            mavenLocal()
            mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.1.1.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'
apply plugin: 'war'

war {
    baseName = 'Xiwami'
    version =  '0.1.0'
}

jar {
    baseName = 'Xiwami'
    version =  '0.1.0'
}

repositories {
    mavenLocal()
    mavenCentral()
    maven { url "http://repo.spring.io/libs-release" }
maven { url …
Run Code Online (Sandbox Code Playgroud)

java spring gradle spring-data spring-boot

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

在存储库接口或实体类中定义查询之间的区别?

抱歉,这是一个非常笨拙/愚蠢的问题,但是我想知道,除了实现之外,在存储库中定义查询之间是否还有其他区别:

public interface EmployeeRepository<Employee, Integer> {

    @Query("select e from Employee e where e.name like :name")
    public List<Employee> findByName(@Param("name") String name);
}
Run Code Online (Sandbox Code Playgroud)

并在实体中定义查询:

@Entity
@NamedQuery(name="Employee.findByName", query="select e from Employee e where e.name like :name")
public class Employee {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;
    //...
}
Run Code Online (Sandbox Code Playgroud)

像是两者都有优点/缺点?

jpa repository named-query spring-data spring-data-jpa

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

将动态数据源路由与spring-data-rest相结合

我正在使用动态数据源路由,如本博客文章中所示:http: //spring.io/blog/2007/01/23/dynamic-datasource-routing/

这很好,但是当我将它与spring-data-rest浏览我生成的存储库结合起来时,我(正确地)得到了一个异常,我的查找键没有被定义(我没有设置默认值).

在与数据库建立任何连接之前,如何以及在何处可以挂钩Spring数据休息请求处理以基于"x"(用户授权,路径前缀或其他)设置查找键?

代码方面我的数据源配置主要与顶部的blogpost匹配,包括一些基本的实体类,生成的存储库和Spring Boot以将所有内容包装在一起.如果需要我可以发布一些代码,但没有什么可看的.

java spring-data spring-data-jpa spring-data-rest

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

Spring Data MongoDB:如何将域对象部分映射到MongoDB?

假设我们在Java域对象中有四个字段.

而不是将所有字段映射到MongoDB文档,有没有办法有选择地将三个字段映射到MongoDB?

public class Person {

  @Id 
  private String id;
  private String name;

  // we don't want to map this field into MongoDB
  private String noMongoDB.

  // getters and setters
}
Run Code Online (Sandbox Code Playgroud)

java spring mongodb spring-data

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

使用Spring Data REST而不是Spring Data JPA有什么好处?

我知道spring数据休息会将你的存储库导出为REST服务.但我想知道使用spring数据jpa的优点.

java spring spring-data spring-data-jpa spring-data-rest

1
推荐指数
2
解决办法
2789
查看次数

为复合PK生成的null id

我有以下表格 在此输入图像描述 以及以下关系表: 在此输入图像描述,其复合PK如下:

UserRole.java

@RooJavaBean
@RooJpaEntity(identifierType = UserRolePK.class, versionField = "", table = "UserRole", schema = "dbo")
@RooDbManaged(automaticallyDelete = true)
@RooToString(excludeFields = { "idApplication", "idRole", "idUserName" })
public class UserRole {
}
Run Code Online (Sandbox Code Playgroud)

UserRole_Roo_DbManaged.aj

@ManyToOne
@JoinColumn(name = "IdApplication", referencedColumnName = "IdApplication", nullable = false, insertable = false, updatable = false)
private Application UserRole.idApplication;

@ManyToOne
@JoinColumn(name = "IdRole", referencedColumnName = "IdRole", nullable = false, insertable = false, updatable = false)
private Role UserRole.idRole;

@ManyToOne
@JoinColumn(name = "IdUserName", referencedColumnName = "IdUserName", nullable = …
Run Code Online (Sandbox Code Playgroud)

spring jpa spring-roo jpa-2.0 spring-data

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

如何解决OptimisticLockingFailureException?

触发OptimisticLockingFailureException的代码:

@Test
public void shouldIncrementUserTotalLikesByOne() throws IllegalArgumentException, UserNotFoundException {
    databuilderService.createAll();

    User user = userService.findByEmail("abc@gmail.com");

    long numberOfLikeCount = user.getLikeCount(); 

    userService.incrementUserTotalLikesByOne(user.getId()); 

    userService.save(user);

    long numberOfUpdatedUpdatedCount = user.getLikeCount(); 

    Assert.assertNotNull(numberOfUpdatedUpdatedCount);

    Assert.assertEquals(numberOfUpdatedUpdatedCount, numberOfLikeCount+1);
}
Run Code Online (Sandbox Code Playgroud)

发生以下情况时会发生异常UserService.save()

org.springframework.dao.OptimisticLockingFailureException: Optimistic lock exception on saving entity:

java mongodb testcase spring-data

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

显式使用EntityManager和Spring Data存储库

我什么时候需要明确地使用EntityManager方法(我对我的Service方法中的clear(),close(),flush(),detach()特别感兴趣,这些方法还可以使用Spring Data repos?

我最感兴趣的是对该主题的一般见解.让我们说在一个应用程序中我发现了这个:

    for ( MyEntity myEntity: entities) {
        ...some logic here
        mySpringDataRepo.save ( myEntity );
    }
    entityManager.flush ();
    entityManager.clear ();
Run Code Online (Sandbox Code Playgroud)

我发现EntityManager的这种使用是合理的,因为内存可以用实体重载.但是,在另一个代码段中:

    mySpringDataRepository.save(entity);
    entityManager.detach(entity);
Run Code Online (Sandbox Code Playgroud)

是否有必要明确分离实体?Spring Data不会单独处理它吗?

我也发现这篇文章:http: //newscentral.exsees.com/item/de38b01b7a9f794a124e2c72b97d1103-c5533957a4140e3c51e7d295ec840d08

让我更加困惑的是.

至于close()方法,我相信没有必要在EE环境中调用它.我对么?

PS:我的配置非常主流:JpaTransactionManager/LocalContainerEntityManagerFactoryBean

java spring spring-data spring-data-jpa

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

从SearchQuery对象获取字符串查询(JSON)

出于调试目的,我需要知道spring-data-elasticsearch正在向ElasticSearch集群发送什么查询.我试图toStringSearchQuery对象上调用方法,但不返回我需要的东西.

我在Java中做的事情(使用spring-data-elasticsearch)是:

private FilterBuilder getFilterBuilder(String id) {
    return orFilter(
        termFilter("yaddayaddayadda.id", id),
        termFilter("blahblahblah.id", id)
    );
}


SearchQuery sq = NativeSearchQueryBuilder()
    .withQuery(new MatchAllQuery())
    .withFilter(fb)
    .build();
Run Code Online (Sandbox Code Playgroud)

我希望返回类似ES集群REST API中执行的简单查询返回的内容:

{
    "query": {
        "filtered": {
            "filter": {
                "or": [
                    {
                        "term": {
                            "yaddayaddayadda.id": "9"
                        }
                    },
                    {
                        "term": {
                            "blahblahblah.id": "9"
                        }
                    }
                ]
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

elasticsearch spring-data spring-data-elasticsearch

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