我正在尝试在我的存储库中使用findBy...来获取一个将嵌套属性(name(作为参数传递的Savingaccount对象。目前我正在使用:
Mono<SavingAccount> findByOwnerName(String name);
但我收到此错误:找不到所有者类型的属性名称!遍历路径:SavingAccount.owner。
我的仓库:
package com...SavingAccMS.Repository;
import com.everis.SavingAccMS.Model.Owner;
import com.everis.SavingAccMS.Model.SavingAccount;
import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
import reactor.core.publisher.Mono;
public interface SavingAccountRepo extends ReactiveMongoRepository<SavingAccount, String>
{
Mono<SavingAccount> findByNumber(String number);
//This one is the problem
Mono<SavingAccount> findByOwnerName(String name);
Mono<SavingAccount> findByOwner(Owner owner);
}
我的实体:
package com...SavingAccMS.Model;
import java.security.acl.Owner;
import javax.validation.constraints.NotBlank;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import lombok.Data;
@Data
@Document(collection = "SavingAccs")
public class SavingAccount
{
@Id
private String id;
@NotBlank
private String number;
@NotBlank
private Owner owner;
@NotBlank
private String currency;
@NotBlank
private double balance = 0.00;
@NotBlank
private String status;
}
package com...SavingAccMS.Model;
import org.springframework.data.mongodb.core.mapping.Document;
import lombok.Data;
@Data
@Document(collection = "Owners")
public class Owner
{
public String dni;
public String name; //findBy this attribute is required.
}
根据您的导入,您SavingAccount
中的Owner
是指java.security.acl.Owner
,而不是您在om...SavingAccMS.Model.Owner
中自己定义的那个。前者不带有name
属性。
我不确定,但我认为您无法像那样在休眠中找到所有者名称。 我会尝试以下方法!
@Query("SELECT * FROM SavingAccount where owner.name = :name")
Mono<SavingAccount> findByOwnerName(@Param("name") String name);