Java 我不知道';我不理解为什么存储库在一种情况下进行查询,但不';我在另一个地方做不到

Java 我不知道';我不理解为什么存储库在一种情况下进行查询,但不';我在另一个地方做不到,java,android,spring-boot,spring-data-jpa,spring-websocket,Java,Android,Spring Boot,Spring Data Jpa,Spring Websocket,我有一些基于spring boot和数据库jpa数据的简单STOMP WebSocket 如果是来自JS(SockJS)的查询,我的控制器中的查询可以正常工作,如果是来自Android(com.github.NaikSoftware:StompProtocolAndroid)的查询,则不工作(只返回空列表),但来自超类crudepository(如findAll())的方法在这两种情况下都可以工作 控制器 @Controller public class MainController {

我有一些基于spring boot和数据库jpa数据的简单STOMP WebSocket

如果是来自JS(SockJS)的查询,我的控制器中的查询可以正常工作,如果是来自Android(com.github.NaikSoftware:StompProtocolAndroid)的查询,则不工作(只返回空列表),但来自超类crudepository(如findAll())的方法在这两种情况下都可以工作

控制器

@Controller
public class MainController {

  @Autowired
  private MemberDAO memberDAO;

      @MessageMapping("/getMembers")
      @SendToUser("/topic/greetings")
      public SocketResponse getMembers(String email){
        System.out.println("email "+memberDAO.findByEmail(email));//Works if it is query from JS (SockJS) and doesn't work (just return rmpty list) if doing query from Android (com.github.NaikSoftware:StompProtocolAndroid) 
        System.out.println("listMembert "+memberDAO.findAll());//Both cases work fine and return list of members 
        //.....
      }
}
DAO

public interface MemberDAO extends CrudRepository<Member, Long> {
    @Transactional(readOnly = true, propagation = Propagation.REQUIRED)
    //@Query(" from Member m where m.email = ?1")
    List<Member> findByEmail(String email);

}

有什么想法吗?非常感谢

代码不完整,没有spring boot stomp配置,也没有指定如何持久化对象响应

我正在开发一个Android stomp over WebSocket客户端。我建议您检查客户端接收的内容以及它的有效负载字符串如何转换为对象

我的项目仍在进行中,但我希望它会有用


这个问题由来已久,但我希望我的回答能帮助谁使用WebSocket。

代码不完整,没有spring boot stomp配置,也没有指定如何持久化对象响应

我正在开发一个Android stomp over WebSocket客户端。我建议您检查客户端接收的内容以及它的有效负载字符串如何转换为对象

我的项目仍在进行中,但我希望它会有用


这个问题由来已久,但我希望我的回答能帮助那些使用WebSocket的人。

如果查询不起作用,您是否检查了电子邮件是否通过?如果查询不起作用,您是否检查了电子邮件是否通过?
@SpringBootApplication
@Import({ WebSocketConfig.class })
public class Application {

  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }

}