小编Sco*_*ott的帖子

与 spring 数据 jdbc 一起使用时,PagingAndSortingRepository 方法会抛出错误

与 相关的所有 CRUD 方法CrudRepository都按预期工作,但是当尝试使用findAllwith 分页或排序时会引发错误。我正在使用Lovelace-SR2发布列车。该类只有一个字段,即@Id. 根据文档,支持分页和排序。https://docs.spring.io/spring-data/jdbc/docs/1.0.2.RELEASE/reference/html/#repositories

// this throws error
Iterable<FirstAggregate> aggregates = repo.findAll(Sort.unsorted());

public class FirstAggregate {
    @Id
    private UUID id;

    public FirstAggregate(UUID id) {
        this.id = id;
    }

    public FirstAggregate() {
    }

    public UUID getId() {
        return id;
    }

    public void setId(UUID id) {
        this.id = id;
    }
}

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-releasetrain</artifactId>
    <version>Lovelace-SR2</version>
    <scope>import</scope>
    <type>pom</type>
 </dependency>
 <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jdbc</artifactId>
 </dependency>

Caused by: java.lang.IllegalStateException: No query specified on findAll
at …
Run Code Online (Sandbox Code Playgroud)

java spring-data spring-data-jdbc

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

具有 combineLatest 初始值的 Angular 事件发射器

尝试使用 ngrx 存储为 angular2 材料表制作数据源。https://material.angular.io/components/table/examples在排序示例中,当排序或数据发生变化时,它们直接访问 _exampleDatabase 数据。使用 ngrx 无法直接访问数据,因此我尝试使用 rxjs 运算符对数据进行排序。

export class ExampleDataSource extends DataSource<any> {
    constructor(private _sort: MdSort, private _storeData$: Observable<UserData[]>) {}

    connect(): Observable<UserData[]> {
        return Observable.combineLatest(this._storeData$, this._sort.mdSortChanage, 
            (data, sort) => {
                 // sorting logic here
                 return data;
            })
    }
Run Code Online (Sandbox Code Playgroud)

一旦我更改排序顺序或调度新事件以更改商店中的用户数据,这就会正常工作。我需要从每个人那里获取初始数据来显示。是否有我缺少的 rxjs 运算符来实现这一点?或者对于这种情况还有另一种更好的方法。

我曾尝试使用 withLatestFrom 和 startWith 但都没有成功。

谢谢!

编辑:在 main.ts 上添加了一个显示问题http://plnkr.co/edit/5HOJSKKmdCuns2kvSirS?p=preview的 plunkr。从 combineLatest 调用中删除 eventEmitter 时,将打印预期的消息。由于 mdSort 在单击之前不会发出事件,因此这可能会导致我的问题。

Edit2:有关解决方案,请参阅下面的谢尔盖评论。工作 plunkr 也在评论中,因为我的声誉不够高,无法发布 2 个链接。由于事件发射器没有输出至少一个值,我需要在事件发射器上添加 startWith 并且它起作用了。

rxjs5 angular-material2 angular

5
推荐指数
0
解决办法
1286
查看次数