【发布时间】:2017-04-21 16:47:19
【问题描述】:
我有一些基于 spring-boot 和来自 DB 的 data-jpa 的简单 STOMP WebSocket。
如果是来自 JS (SockJS) 的查询,我的控制器中的查询工作正常,如果从 Android (com.github.NaikSoftware:StompProtocolAndroid) 进行查询,但从超类 CrudRepository (像 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);
}
应用程序
@SpringBootApplication
@Import({ WebSocketConfig.class })
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
有什么想法吗?非常感谢!
【问题讨论】:
-
在查询不起作用的情况下,您是否检查了电子邮件是否通过?
标签: java android spring-boot spring-data-jpa spring-websocket