使用Spring Boot R2DBC时,我面临这样一种情况,即使用包含INNER JOIN的@Query
编写原始查询时,结果Flux
中返回的所有行中的一些字段都有数据,但其他字段为空。然而,当直接从DB运行相同的查询时,所有字段都被填充,这是我所期望的。可能是什么问题?列名和POJO/Bean名称完全匹配,并且是camelCase
的混合,在DB级别和代码中都是大写和小写。例如,在下面的SQL:
@Query("SELECT" +
" i.inboundID, " +
" i.MSISDN," +
" i.message," +
" ms.shortDesc," +
//... other columns
" i.modifiedByUsername" +
" FROM inbound i " +
" JOIN messageStatuses ms on ms.statusCode = i.inboundStatus " +
" JOIN conversation cm on i.conversationID = cm.conversationID " +
//...some other SQL
" LIMIT :limit OFFSET :offset ")
Flux<MessageModel> findAllMessages(...)
并给出以下POJO:
//getter and setter methods omitted
public class MessageModel
{
private Integer inboundID;
private String MSISDN;
private String message;
private String shortDesc;
...
private String modifiedByUsername;
}
... 通过R2DBC获取数据时,字段MSISDN和message是唯一包含数据的列,其他所有列都将为空。但是,当提取上述SQL并直接在数据库(MySQL)上执行时,所有列都将包含数据。知道为什么会这样吗?
我设法通过将@org.springframework.data.relational.core.mapping.列
注释添加到Java模型类列名来解决它。所以现在我的POJO有这样的结构:
public class MessageModel
{
@Column(value = "inboundID")
private Integer inboundID;
@Column(value = "MSISDN")
private String MSISDN;
@Column(value = "message")
private String message;
@Column(value = "shortDesc")
private String shortDesc;
...
@Column(value = "modifiedByUsername")
private String modifiedByUsername;
}
运行查询后,我从MongoDB返回一个JSON值。问题是我不想返回与我的返回相关的所有JSON,我尝试搜索文档,但没有找到正确的方法。我想知道如果可能的话会怎样,如果可能的话,正确的做法是什么。示例:在数据库中 如果某个字段为用户存在,但不返回另一个字段,那么返回该字段的正确方式是什么。对于上面的示例,我想返回RMS的字段和扎克伯格的字段。这就是我试图找到的字段是否为空,但它似乎不起作用。
问题内容: 我正在使用Elasticsearch索引我的文档。 是否有可能指示它仅返回特定字段,而不是它存储的整个json文档? 问题答案: 是的 使用源过滤器。如果您使用JSON搜索,它将看起来像这样: 在ES 2.4及更低版本中,您还可以在search API中 使用fields选项: ES 5+中已弃用此功能。而且,源过滤器更强大!
我正在尝试从查询中获取剩余的元组。在本例中,course_id3和4来自courses,因为用户admin@没有使用这些(他们只使用了1和2)。当我尝试左联接时,表已经很好地联接了,查询也正常工作... 但这将返回课程1和2,而不是3和4
问题内容: 当每个表只有340行时,以下查询将返回> 7000行。 为什么会这样?如果INNER JOIN仅在两个表中都有匹配项时才返回一行,那么为什么要为匹配项返回多行。 问题答案: 如果有一个以上的行具有相同的价值为相同的价值,那么你会得到重复的行,反之亦然。
我想创建带有PagerView的片段,但运行以下代码会返回一个IllegalStateException: 源代码: IllegalStateException: 进程:com.company.user.blabla,pid:22256 java.lang.illegalstate异常:带有适配器的ViewPager com.company.user.blabla.fragments.homeFr
问题内容: “foo” instanceof String //=> false “foo” instanceof Object //=> false true instanceof Boolean //=> false true instanceof Object //=> false false instanceof Boolean //=> false false instanceof Ob