标签: spring-data

Spring数据jpa @transactional

以下是我的申请流程

控制器 - 服务 - 存储库

在服务层,我们有@Transactional注释我们也有jpa:repository配置,我们指定实体管理器和txn管理器.

我怀疑是否jpa:repositories认为考虑了指定的txn管理器,并且没有@Transactional在服务层指定的影响.例如:服务层@Transactional可以映射到自定义txn管理器,其中由服务调用的存储库可以具有不同的txn管理器.在那种情况下,它不会产生问题吗?

有人澄清@Transactional我们在使用jpa存储库时是否需要放在服务层?

spring spring-data spring-data-jpa

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

如何使用Spring CrudRepository查询布尔属性?

我正在使用Spring CrudRepository进行数据库查询.如何为布尔属性创建方法签名(不是自己编写SQL select语句)?

以下不起作用:

class MyEntity {
       private boolean active;
}


interface MyEntityRepository implements CrudRepository<MyEntity, Long> {
   List<MyEntity> findActive(); //or also: findNotActive();
}
Run Code Online (Sandbox Code Playgroud)

java spring spring-data spring-data-jpa

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

Spring中的Pageable和@Param数据JpaRepository方法问题[2]

我知道这个问题,但使用org.springframework.data:spring-data-jpa:1.7.0.RELEASE我仍然有同样的问题(Either use @Param on all parameters except Pageable and Sort typed once, or none at all!).我的班级是:

public interface BalanceHistoryRepository extends JpaRepository<BalanceHistory, Long> {
    @Query("select bh from BalanceHistory bh where bh.account.id = :idAccount")
    public BalanceHistory findCurrentBalanceByAccountNumber(PageRequest pageCriteira, @Param("idAccount") long idAccount);
}
Run Code Online (Sandbox Code Playgroud)

编辑

呼叫:

 Pageable page = new PageRequest(0, 1, Sort.Direction.DESC, "date");
        BalanceHistory bh = balanceHistoryRepository.findCurrentBalanceByAccountNumber(1,page);
Run Code Online (Sandbox Code Playgroud)

方法:

@Query("select bh from BalanceHistory bh where bh.account.id = :idAccount")
public BalanceHistory findCurrentBalanceByAccountNumber(@Param("idAccount") long idAccount, Pageable pageCriteira);
Run Code Online (Sandbox Code Playgroud)

java spring jpa spring-mvc spring-data

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

Spring CrudRepository是否支持列表的deleteBy?

是否有Spring数据 CrudRepository通过不是主键的属性提供条目列表的删除?

public interface MyRepository extends CrudRepository<MyEntity, Long> {
    @Modifying
    @Transactional
    public void deleteByName(List<String> names);
}
Run Code Online (Sandbox Code Playgroud)

java spring spring-data spring-data-jpa

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

Spring Boot和Spring Data应用程序,在运行时创建了多个DataSource

我正在开发一个使用Spring Data JPA的Spring Boot应用程序,需要连接到许多不同的数据库,例如PostreSQL,MySQL,MS-SQL,MongoDB.我需要在运行时创建所有数据源,即用户在启动的应用程序中通过GUI选择这些数据:-driver(列表中的一个), - source,-port,-username,-password.毕竟他写本机sql来选择数据库并获得结果.我在堆栈和spring论坛(例如AbstractRoutingDataSource)中阅读了很多关于它的内容,但所有这些教程都展示了如何从java bean中的xml配置或静态定义创建数据源.可以在运行时创建许多datsource吗?如何管理事务以及如何创建许多sessionFactories?可以使用@Transactional注释吗?这样做的最佳方法是什么?有人可以解释我如何"一步一步"这样做吗?

java spring spring-mvc spring-data spring-boot

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

Spring数据休息排序带有下划线的字段

我们@RepositoryRestResourcePagingAndSortingRepository连接到postgres数据库的顶部使用了一个非常简单的设置.我们还配置spring.jackson.property-naming-strategy=SNAKE_CASE了返回漂亮的json.在我们开始排序之前,这一切都很好,很花哨.正如我们所发现的 - 排序要求我们提供实际的类字段名称(我们当然在驼峰的情况下):

get("/thing?sort=dateCreated,desc")

当我们尝试javascript友好

get("/thing?sort=date_created,desc")

它失败了,因为jpa试图用下划线拆分参数.

是否有一种简单的方法让路径params与我们在json中返回的格式相同?

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

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

是什么意思<S extends T> save(S entity); 在Spring Repository中?

在Spring Data项目中,CrudRepository为正在管理的实体类提供了复杂的CRUD功能.

public interface CrudRepository<T, ID extends Serializable>
extends Repository<T, ID> {

    <S extends T> S save(S entity);

    T findOne(ID primaryKey);

    Iterable<T> findAll();

    Long count();

    void delete(T entity);

    boolean exists(ID primaryKey);

    // … more functionality omitted.
}
Run Code Online (Sandbox Code Playgroud)

一般来说,我知道"S extends T"意味着什么,即S,保存操作的返回类型,必须是T的子类型.为什么有必要添加诸如约束?我认为做这样的事情会很好:

T save (T entity);
Run Code Online (Sandbox Code Playgroud)

如在

void delete(T entity);
Run Code Online (Sandbox Code Playgroud)

我已经google搜索了更多帮助,我已经在stackoverflow本身上找到了以下问题,但对我来说并不是很清楚:

Spring CrudRepository:为什么要发明一个新的泛型类型S.

谢谢.

java generics spring repository spring-data

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

Postgresql中的Java 8 JPA Repository Stream逐行

阅读这个关于MySQL定义某些查询提示(@QueryHints被注释)要求,以使MySQL处理结果集行由行.有谁知道PostgreSQL需要什么(如果有的话)?

以下是MySQL存储库中的引用查询定义:

@QueryHints(value = @QueryHint(name = HINT_FETCH_SIZE, value = "" + Integer.MIN_VALUE))
@Query(value = "select t from Todo t")
Stream<Todo> streamAll();
Run Code Online (Sandbox Code Playgroud)

postgresql spring java-8 spring-data spring-data-jpa

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

在Spring数据公共2.0.4中找不到QueryDslPredicateExecutor

我花了好几个小时在spring数据中找到QueryDslPredicateExecutor.为什么它是一个博客,但被称为QueryDslPredicateExecutor在文档QuerydslPredicateExecutor(小d!)神器2.0.4.RELEASE?哪个版本是正确的?

java spring spring-data

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

Spring数据保存vs saveAll性能

我试图理解为什么saveAll具有比Spring Data存储库中保存更好的性能.我使用的是CrudRepository从中可以看出这里.

为了测试我创建并添加了10k个实体,它们只有一个id和一个随机字符串(对于基准测试我保持字符串是一个常量)到列表中.迭代我的列表并调用.save每个元素,花了40秒..saveAll在2秒内完成相同的整个列表调用..saveAll用甚至30k元素调用花了4秒钟.我确保在执行每个测试之前截断我的表.即使将.saveAll电话拨打到50个子列表,也需要10秒才能获得30k.

.saveAll整个列表的简单似乎是最快的.

我试图浏览春数据源代码,但是是我发现的唯一有价值的东西.在这里,它似乎.saveAll只是迭代整个,Iterable.save像我一样调用每一个.那怎么快得多呢?它是在内部进行一些事务性批处理吗?

java spring hibernate spring-data spring-data-jpa

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