小编Kas*_*ard的帖子

Spring Data Rest - 按嵌套属性排序

我有一个使用Spring Boot 1.5.1和Spring Data Rest的数据库服务.我将我的实体存储在MySQL数据库中,并使用Spring的PagingAndSortingRepository通过REST访问它们.我发现表明支持按嵌套参数排序,但我找不到按嵌套字段排序的方法.

我有这些课程:

@Entity(name = "Person")
@Table(name = "PERSON")
public class Person {
    @ManyToOne
    protected Address address;

    @ManyToOne(targetEntity = Name.class, cascade = {
        CascadeType.ALL
    })
    @JoinColumn(name = "NAME_PERSON_ID")
    protected Name name;

    @Id
    protected Long id;

    // Setter, getters, etc.
}

@Entity(name = "Name")
@Table(name = "NAME")
public class Name{

    protected String firstName;

    protected String lastName;

    @Id
    protected Long id;

    // Setter, getters, etc.
}
Run Code Online (Sandbox Code Playgroud)

例如,使用该方法时:

Page<Person> findByAddress_Id(@Param("id") String id, Pageable pageable);
Run Code Online (Sandbox Code Playgroud)

并调用URI http:// localhost:8080/people/search/findByAddress_Id?id = …

spring spring-data spring-data-rest spring-boot

12
推荐指数
2
解决办法
5651
查看次数

为单个变量分配不同的生命周期

仍在尝试了解 Rust 所有权和生命周期,并且我对这段代码感到困惑:

struct Foo {
    x: String,
}

fn get_x<'a, 'b>(a: &'a Foo, b: &'b Foo) -> &'b str {
    let mut bar = &a.x;
    bar = &b.x;
    bar
}
Run Code Online (Sandbox Code Playgroud)

操场

该代码无法编译,因为data from 'a' is returned. 我认为这是因为当我初始化时bar,我分配了一个&'a对它的引用,所以 Rust 假设它bar有生命周期'a。因此,当我尝试返回 type 的值时,&'a str它会抱怨它与返回类型不匹配'b str

我不明白的是:为什么我首先可以分配 a&'b str到?bar如果 Rust 假设bar具有生命周期'a,那么它不应该阻止我分配b.x给它吗?

lifetime rust

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

使用默认值初始化数组的其余部分

Rust 有没有办法手动初始化数组的前 n 个元素,并指定其余元素使用的默认值?

具体来说,在初始化结构体时,我们可以指定一些字段,并使用..另一个结构体来初始化其余字段,例如:

let foo = Foo {
  x: 1,
  y: 2,
  ..Default::default()
};
Run Code Online (Sandbox Code Playgroud)

是否有类似的机制来手动初始化数组的一部分?例如

let arr: [i32; 5] = [1, 2, ..3];
Run Code Online (Sandbox Code Playgroud)

要得到[1, 2, 3, 3, 3]

rust

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

堆栈构建失败并显示 LLD 错误

我试图建立一些哈斯克尔包stackhaskell-ide-enginehlint明确),但他们都失败了许多ld.lld错误信息,凡是涉及到R_X86_64_32S搬迁,例如:

ld.lld: error: can't create dynamic relocation R_X86_64_32S against symbol: stg_bh_upd_frame_info in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
>>> defined in /home/kas/.stack/programs/x86_64-linux/ghc-tinfo6-8.6.5/lib/ghc-8.6.5/rts/libHSrts_thr.a(Updates.thr_o)
>>> referenced by /home/kas/.stack/setup-exe-src/setup-shim-mPHDZzAJ.o:(s6WS_info)
Run Code Online (Sandbox Code Playgroud)

我尝试配置stack为使用不同的链接器(使用ghc-options标志),但我无法让它工作,它总是使用lld.

有谁知道我如何更改stack的链接器,或以其他方式修复错误?

谢谢!

haskell lld haskell-stack

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

循环中的多个可变引用

我正在尝试更详细地了解 Rust 的所有权和生命周期,但我对这段代码感到非常困惑:

let mut lst = vec![1, 2, 3];
let mut x = &mut 0;

for value in &mut lst {
    *value += 1;
    *x += 1;
    x = value;
}

*x += 1;
println!("{:?}", &lst);
Run Code Online (Sandbox Code Playgroud)

据我了解,Rust 不允许对任何值有多个可变引用,并且对向量中元素的可变引用也会借用向量本身。因此,不可能同时对向量中的两个元素进行可变引用。

但在上面的代码中,循环体存储了对循环外部lst元素的可变引用。x然后,在下一次迭代中,它需要另一个对 中不同元素的可变引用lst,同时为我提供对列表中两个元素的两个可变引用

所以我的问题是:为什么允许这样做?

lifetime ownership rust

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