我有一个带有React式堆栈(WebFlux)的Sping Boot 应用程序。我使用r2dbc驱动程序处理PostgreSQL数据库。DB包含2条记录,所有值都存在,但当我查询时,我得到空字段。下面你可以看到服务回复。
[
{
"pkey": null,
"description": null,
"uid": null,
"isActive": null
},
{
"pkey": null,
"description": null,
"uid": null,
"isActive": null
}
]
实体类:
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Immutable;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;
@Getter
@Setter
@Builder
@ToString
@Immutable
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "channel", schema = "myschema")
public class ChannelView {
@Id
@Column("pkey")
private Integer pkey;
@Column("description")
private String description;
@Column("uid")
private String uid;
@Column("is_active")
private Boolean isActive;
}
使用默认生成的findAll()方法通过React式repo接收的数据:
import com.myproject.dao.entity.ChannelView;
import org.springframework.data.r2dbc.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.data.repository.reactive.ReactiveCrudRepository;
import org.springframework.stereotype.Repository;
import reactor.core.publisher.Mono;
@Repository
public interface ChannelViewRepository extends ReactiveCrudRepository<ChannelView, Integer> {
}
注意通道实际上是一个视图,而不是一个表。可能是问题所在。但在非React式方法中,它工作正常(jdbc驱动程序)。
1条答案
按热度按时间zzlelutf1#
我的错误是在实体类上使用@Immutable,我删除了它,现在它返回所有字段!