从多个数据源中提取模型对象时,最好的方法是什么?
例如,我有一个应用程序已经使用hibernate将一些数据存储在mySQL数据库中.如果我想在EC2或Google App Engine中存储其他一些对象,该怎么办?我理解DAO的摘要是使用特定数据源的实现,但实体本身呢?
起初我认为用jpa注释注释我的实体是一个很好的解决方案,但现在看来我真的把我的实体绑定到一个特定的实现.例如,在App Engine的情况下,其中一些注释没有任何意义.
看起来我需要一个纯粹的POJO类来表示我的实体,完全没有持久性逻辑.如果我想模仿一只狗(是跛脚的选择,但无论如何).
拥有一个抽象的Dog类是否有意义,然后定义子类以使用特定的持久性解决方案:HibernateDog,GAEDog等.
谢谢.
我只是想知道jQuery如何能够在Javascript中劫持'this'关键字.从我正在阅读的书中读到:"Javascript the Definitive Guide"它指出"this"是一个关键字,你不能像标识符那样改变它.
现在,假设您在自己的对象构造函数中,并且调用了一些jQuery代码,它是如何从您那里劫持的?
function MyObject(){
// At this point "this" is referring to this object
$("div").each(function(){
// Now this refers to the currently matched div
});
}
Run Code Online (Sandbox Code Playgroud)
我唯一的猜测是,因为你提供了对jQuery each()函数的回调,你现在正在使用一个具有jQuery作用域链的闭包,而不是你自己的对象的作用域链.这是正确的轨道吗?
谢谢
我正在寻找一种方法来查询git服务器的日志,以获取给定的提交范围.作为一名SVN用户,我的思维方式错误,所以我希望GIT专家可以提供帮助.我正在寻找类似于:
svn log -r 5:20 --xml svn.myserver.com
Run Code Online (Sandbox Code Playgroud)
但对于一个git服务器.换句话说,显示第5次提交到第20次提交的日志.谢谢你的帮助.
我的问题源于在尝试构建多个位深度平台(例如32/64)时尝试使用printf来记录事物.
一直在养成丑陋头脑的问题是试图在多种体系结构上打印.在32位上它会是这样的
printf(" my int: %d\n", myInt);
Run Code Online (Sandbox Code Playgroud)
但在64位上,它必须改为
print (" my int: %ld\n", (long)myInt);
Run Code Online (Sandbox Code Playgroud)
我有两个相关的问题:
我的第一个想法是,当你告诉printf打印一个变量,给它一个格式时,它会查看该变量的地址并获取该格式所需的字节数.这一开始似乎是个大问题.例如,如果你有一个变量myChar,它是一个char(1个字节),但使用了%d的格式说明符,那将告诉printf转到myChar的地址并获取接下来的4个字节,将其视为int.如果是这种情况,似乎printf会从相邻变量中获取垃圾日期(因为它抓取了4个字节,但实际值只有1个字节).然而,情况似乎并非如此.通过使用myChar并指定%d,printf抓取1个字节,然后用0表示填充高3个字节.我的理解在这里是否正确?
如果上述情况属实,那么始终将变量提升到最大值是否有任何真正的危害,以避免在32/64位情况下出现的问题类型.例如,如果你有一个短变量myShort和一个int变量myInt,那么打印它们总是有任何缺点:
printf("myShort%ld",(long)myShort); printf("myInt%ld",(long)myInt);
谢谢你的任何澄清.
有人可以帮我理解使用泛型而不仅仅使用基类或协议的好处吗?也许我只需要阅读Swift指南几次,但泛型的概念并没有下沉.考虑使用泛型的这个例子
func removeObject<T : Equatable>(object: T, inout fromArray array: [T])
{
var index = find(array, object)
array.removeAtIndex(index!)
}
Run Code Online (Sandbox Code Playgroud)
为什么不这样写呢?
// As pointed out, this does not compile. I was more-so curious as to why
func removeObject(object: Equatable, inout fromArray array: [Equatable])
{
var index = find(array, object)
array.removeAtIndex(index!)
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的解释.
更新.是的,澄清我的例子完全是假设的.我正在考虑如何在Objective-C中实现这个问题.在那,我只是传递类型id的参数,这将做到这一点.
我的问题是为了深入了解为什么在Swift中不允许使用类似的模式,而是使用泛型来代替.
我试图在UIWebView中的内容上执行一些Javascript.也许我对Javascript运行时的知识缺乏,但我对以下示例感到困惑.有关详细信息,请参阅源代码和注释:
NSString *html = [NSString stringWithFormat:@"<html><head><script type='text/javascript'>var content='the initial content';function myFunc(){return 'value of content: ' + content;}myFunc();</script></head><body>Hello blank</body></html>"];
// I would expect after this call that the variable content exists, as well as the function myFunc()
[self.webView loadHTMLString:html baseURL:nil];
// However, it appears not to. The following call returns nothing
NSString *result = [self.webView stringByEvaluatingJavaScriptFromString:@"myFunc();"];
NSLog(@"result: %@", result);
// Inserting the Javascript at this point seems to work as expected
result = [self.webView stringByEvaluatingJavaScriptFromString:@"var content='the new content';function myFunc(){return 'value of …Run Code Online (Sandbox Code Playgroud) 有时我喜欢为一个对象编写getter属性,这样第一次调用它们时,繁重的工作就会完成一次,并且该值会被保存并在将来的调用中返回.在objective-c中,我将使用ivar或静态变量来保存此值.就像是:
- (id)foo
{
if ( _foo == nil )
{
_foo = // hard work to figure out foo
}
return _foo
}
Run Code Online (Sandbox Code Playgroud)
这种相同的模式在Python中是否能够很好地运行,或者有更多可接受的方式吗?到目前为止我基本上都是一样的.我不喜欢我的解决方案是我的对象混淆了值和这些值的getter:
def foo(self):
if not hasattr(self, "mFoo":
self.mFoo = # heavy lifting to compute foo
return self.mFoo
Run Code Online (Sandbox Code Playgroud) 我正在阅读有关__block变量的文档,并考虑我使用__block的情况.对我来说,似乎我需要两种情况:
从表面上看,这两件事似乎并不相关.我认为__block变量没有被保留为更多的技巧我需要记住避免保留周期的特定用例.
我想知道,为什么不能保留它们是否有更重要的建筑理由?我会想一些其他关键字来表明这可能更清楚,以免混淆上面列出的两个功能.
更新 -
我应该提到这是不使用ARC的代码.我现在看到__block变量实际上保留在ARC中.
我有一个类似于以下的数据库模式:
| User | Event | Date
|--------|---------------|------
| 111 | Walked dog | 2009-10-1
| 222 | Walked dog | 2009-10-2
| 333 | Fed Fish | 2009-10-5
| 222 | Did Laundry | 2009-10-6
| 111 | Fed Fish | 2009-10-7
| 111 | Walked dog | 2009-10-18
| 222 | Walked dog | 2009-10-19
| 111 | Fed Fish | 2009-10-21
Run Code Online (Sandbox Code Playgroud)
我想生成一个查询,返回用户在一段时间内执行某些操作的最大次数.例如,给定5天的时间段,用户111遛狗的最大次数是多少?
最明显的解决方案是从某个零点开始并每天前进,总计5天的时间段,然后从所有5天的窗口中取出最大总数.然而,这种方法似乎非常昂贵.
我很感激您的任何建议.
编辑1:
感谢您的评论/答案.回应: - 我正在使用mySQL v5.0 - 每天可能有任意数量的事件(真的是每个时间段) - @Paulo Santos:谢谢,但是就像评论指出的那样,我需要找到一个窗口产生最多的结果,窗口本身可以滑动. - @Mark:这看起来像一个有趣的解决方案,虽然我记得读到mySQL不支持备份或跳过游标.
- …
给定代码库(比如说大型C或Objective-C项目)我想分析源代码文件并挑选出感兴趣的符号.它们可能是类声明,变量名称或类型或方法名称.是否有一个Python模块可以帮助我这个?
我可以看到的唯一方法是使用正则表达式来收集这些符号,但我认为这可能会很快变得非常丑陋.我也不是编译器或解析器方面的专家,因此可以优先考虑更轻量级的东西.
谢谢你的任何建议.
------更新-----
感谢到目前为止的所有建议,肯定是一些有希望的线索.另一种可能的途径:如果我能够编译我试图分析的项目该怎么办?调试符号(dsym)会使这个过程更容易吗?我不是在寻找任何先进的东西,只是一个类的列表,以及它们的ivar和方法名称.在这一点上,查看建议的解析工具似乎比我现在可以投资这个项目更多的工作