请参阅中的代码
我想知道如何添加另一个间谍来窥探$ filter('date')返回的方法,以便我可以验证
expect(something, something).toHaveBeenCalledWith('1234', 'dd-MMM-yyyy');
Run Code Online (Sandbox Code Playgroud) 在客户端javascript我有
stomp.subscribe("/topic/path", function (message) {
console.info("message received");
});
Run Code Online (Sandbox Code Playgroud)
在服务器端
public class Controller {
private final MessageSendingOperations<String> messagingTemplate;
?Autowired
public Controller(MessageSendingOperations<String> messagingTemplate) {
this.messagingTemplate = messagingTemplate;
}
@SubscribeMapping("/topic/path")
public void subscribe() {
LOGGER.info("before send");
messagingTemplate.convertAndSend(/topic/path, "msg");
}
}
Run Code Online (Sandbox Code Playgroud)
从这个设置,我偶尔(大约30次刷新一次)遇到消息丢失,这意味着我既看不到客户端的"收到消息"消息,也看不到Chrome调试工具的websocket流量.
"发送前"始终记录在服务器端.
当我在subscribe()方法中调用它时,看起来MessageSendingOperations没有准备好.(如果我把Thread.sleep(50);在调用messagingTemplate.convertAndSend之前,问题就会消失(或者不太可能被复制)
我想知道是否有人经历过同样的事情,如果有一个事件可以告诉我MessageSendingOperations是否准备就绪.
如果我们在表"person"中有一个列"dob"(varchar2),
我们可以为它创建一个索引,即"在person(dob)上创建索引"
如果我们执行诸如upper(dob)之类的查询,它将忽略现有索引,以便
我们需要创建一个索引,例如"在person上创建索引(upper(dob))"
但是,如果dob列的类型为数字怎么办?
当查询为upper(dob)或更低(dob)或对数字列没有影响的任何操作时,Oracle能够聪明地使用为person(dob)创建的索引吗?
我知道如果它们没有意义,就不应该将这些函数应用于列.但是我们假设你有一个列作为varchar2但是意识到它可以是一个只有数字的列并且没有改变使用这个列的代码.
或者,如果您有一些通用逻辑来应用不区分大小写而不检查列类型.
或者像Dave在评论中所说的那样,如果你有现有的查询使用无法更改的UPPER(dob).
我知道至少对于11gr2以下的版本目前还没有