接受同事留下来的项目,没想到运行的时候还有bug,无法对对象的对象的属性进行条件查询,非常操蛋,琢磨了一下午终于解决了。
话不多说,贴代码
@Data
@Document
@ToString
@Accessors(chain = true)
public class ChatMessage {
@Id
private String id;
private MessageHeader messageHeader;
private MessageBody messageBody;
private String createTime;
}
@Data
@ToString
@Accessors(chain = true)
public class MessageHeader {
@Indexed
@JsonSerialize(using = ToStringSerializer.class)
private String from;
@Indexed
@JsonSerialize(using = ToStringSerializer.class)
private String to;
}
现在是要对chatMessage中的messageHeader中的to进行条件查询,这里用的是jpa的MongoRepository
方法一:
ChatMessage message = new ChatMessage();
message.setMessageHeader(new MessageHeader().setTo("1401061832747122688"));
ExampleMatcher matcher = ExampleMatcher
.matching()
.withMatcher("messageHeader.to", ExampleMatcher.GenericPropertyMatchers.contains());
Example<ChatMessage> example = Example.of(message, matcher);
System.out.println(repository.findAll(example));
方法二:
@Query("{ 'messageHeader.from' : ?0, 'messageHeader.to' : ?1}")
List<ChatMessage> findChatMessagesByMessageHeader_ToAndMessageHeader_From(String from, String to);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)