我正在寻找一个更好的替代std :: map并且遇到帖子标题中提到的类.有人可以澄清它们之间的差异,不是在性能/ API方面,而是在它们与当前和未来标准相关的方面.
使用JPA 2 Criteria Join方法,我可以执行以下操作:
//Join Example (default inner join)
int age = 25;
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Team> c = cb.createQuery(Team.class);
Root<Team> t = c.from(Team.class);
Join<Team, Player> p = t.join(Team_.players);
c.select(t).where(cb.equal(p.get(Player_.age), age));
TypedQuery<Team> q = entityManager.createQuery(c);
List<Team> result = q.getResultList();
Run Code Online (Sandbox Code Playgroud)
我怎么能用fetch方法做同样的事情,我期望Fetch接口有get路径导航方法,但它没有:
//Fetch Join Example
int age = 25;
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Team> cq = cb.createQuery(Team.class);
Root<Team> t = cq.from(Team.class);
Fetch<Team,Player> p = t.fetch(Team_.players);
cq.where(cb.equal(p.get(Player_.age), age)); //This leads to compilation error there is no such method get in interface Fetch …Run Code Online (Sandbox Code Playgroud) 我从他们的文档中了解到,能够使用单个输入字段进行范围选择.
怎么能实现这一目标?我已经尝试了jQuery UI 1.6中建议的代码- jQuery的用户界面库,但它似乎不起作用.这是我正在尝试的代码:
$(function(){
//create config object
var pickerOpts = {
rangeSelect: true,
rangeSeparator: " to "
};
//create the date picker
$("#date").datepicker(pickerOpts);
});
Run Code Online (Sandbox Code Playgroud)
会发生什么,它只是选择一个日期,不允许范围选择,我正在寻找.
我已经为多个应用程序实现了RPXNow,作为OpenID和OAuth的一个很好的抽象,以支持Google和Facebook登录.我唯一的抱怨是登录时间过长.点击谷歌的"登录"按钮后,整个过程需要8-10秒才能完成,这来自我的本地机器!我只查询https://rpxnow.com/api/v2/auth_info一次来自my的响应字符串AccountController,其中包括登录结果和用户配置文件.
所以我选择实施DotNetOpenAuth.使用Google作为我的提供商,完成登录仍需要7-9秒!它不能是我的存储库层,因为Forms登录是即时的.因此,我必须将等待时间归因于我的系统,RPXNow和身份验证提供程序之间的延迟.同样的延迟发生在我的基本和高级RPXNow账户上.
StackOverflow上的Google OpenID登录似乎是即时的.如何加快我的OpenID登录速度?如果我可以将登录时间缩短到1-3秒,我愿意放弃RPXNow.
编辑:好的,所以我去了我的RPXNow请求实际需要多长时间,并且它不到两秒钟(从冷启动开始的1984ms和2100ms),但整个过程需要7-8*秒.也许这是重定向或谷歌的登录框.我将不得不再运行一些诊断程序.
更多测试:我正在使用384kbps的ADSL连接进行测试,这也是SA的大多数人仍然拥有的.以下是使用Google登录的时间细分:
总登录时间,不包括在内.数据输入:
太长.
总登录时间,不包括在内.数据输入:
几乎可以接受.
我有一个将写入输出文件的bash程序.此文件可能存在也可能不存在,但脚本必须检查权限并尽早失败.我无法找到一种优雅的方式来实现这一目标.这是我尝试过的.
set +e touch $file set -e if [ $? -ne 0 ]; then exit;fi
我继续set -e这个脚本,所以如果任何一行都有错误,它就会失败.有没有更简单的方法来执行上述脚本?
我正在编写一个插件架构.我的插件dll位于运行插件管理器的子目录中.我将插件加载到单独的AppDomain中,如下所示:
string subDir;//initialized to the path of the module's directory.
AppDomainSetup setup = new AppDomainSetup();
setup.PrivateBinPath = subDir;
setup.ApplicationBase = subDir;
AppDomain newDomain= AppDomain.CreateDomain(subDir, null, setup);
byte[] file = File.ReadAllBytes(dllPath);//dll path is a dll inside subDir
newDomain.Load(file);
Run Code Online (Sandbox Code Playgroud)
然而.newDomain.Load返回当前域尝试加载的程序集.因为插件dll位于子目录中,所以当前域不能也不应该看到这些dll,并且当前域抛出FileLoadException"ex = {"无法加载文件或程序集......或其依赖项之一.
问题是,我们可以将程序集加载到单独的AppDomain中而不返回已加载的程序集吗?
我知道我可以在当前域中为AssemblyResolve事件添加一个处理程序并返回null,但我宁愿不去这条路线.
提前致谢.
当使用*nix shell(通常是bash)时,我经常会生成一个子shell,我可以用它处理一个小任务(通常在另一个目录中),然后退出以恢复父shell的会话.
偶尔,我会忘记我是在运行嵌套shell,还是在我的顶层shell中,我会不小心产生一个额外的子shell或者错误地退出顶级shell .
有没有一种简单的方法来确定我是否在嵌套的shell中运行?或者我是以完全错误的方式解决我的问题(通过产生子壳)?
我正在将一个svn repo移植到git(使用来自https://www.negativetwenty.net/redmine/projects/show/svn2git的 svn2git )并且由于svn不跟踪合并,我需要手动编辑.git/info/grafts .为此,我启动gitk,在提交消息中搜索术语"Merge",验证合并提交是否具有正确的祖先并依次填充.git/info/grafts.
我遇到的问题是gitk似乎与"master"分支混淆了.它经常表明主人从一个分支"分叉"并被合并成一个分支后跟,而实际上则相反.
为什么它无法理解master应该尽可能"线性",它应该是从它分叉的分支,而不是相反?这是一个gitk问题还是git repo的历史不完整?似乎"git log --pretty = oneline --graph"能够显示正确的行为,所以我认为它可能是一个gitk问题.
我也尝试过咯咯和qgit,但两者都有问题.我发现giggle的树很难理解(例如,合并是水平的,而在qgit和gitk中它们是倾斜的......)qgit似乎没有显示一些提交(在svn中创建分支的提交在两者中都显示为git提交"git log --pretty = oneline --graph"和gitk,但不是qgit也不是咯咯笑.
请注意,我在测试中使用"gitk --all".
所以我的问题是: - 我如何强制gitk尽可能线性显示master?理想情况下,"左对齐",分支从它分叉,而不是相反."git log --pretty = oneline --graph"似乎正在以正确的方式进行,但是gitk呢?
谢谢!
编辑:截图链接已死.以前说过:
我上传了不同工具的截图:git log,gitk,giggle,qgit
看看"git log"如何显示正在合并到trunk的分支,而gitk显示trunk正在分支中合并.Giggle和qgit显示正确的合并,但是它们经常会丢弃一些提交(创建分支),因此很难手动编辑.git/info/grafts文件.
我实现了这个函数:GetSystemPowerStatusEx和GetSystemPowerStatusEx2
根据MSDN上的这篇文章,我应该创建一个根据我将使用的函数命名的类,但我的问题是:我怎么知道我应该把哪个类放入GetSystemPowerStatusEx和GetSystemPowerStatusEx2?
我迷路了...
感谢帮助.
[编辑]我的问题是:这三个类名中哪一个对我来说是好的(NativeMethods/SafeNativeMethods/UnsafeNativeMethods)?
这些方法应该属于以下类之一:
NativeMethods - 此类不会抑制非托管代码权限的堆栈遍历.(System.Security.SuppressUnmanagedCodeSecurityAttribute不能应用于此类.)此类适用于可在任何地方使用的方法,因为将执行堆栈遍历.
SafeNativeMethods - 此类禁止堆栈遍历非托管代码权限.(System.Security.SuppressUnmanagedCodeSecurityAttribute应用于此类.)此类适用于任何人都可以安全调用的方法.这些方法的调用者不需要执行完整的安全性审查,以确保使用是安全的,因为这些方法对任何调用者都是无害的.
UnsafeNativeMethods - 此类禁止堆栈遍历非托管代码权限.(System.Security.SuppressUnmanagedCodeSecurityAttribute应用于此类.)此类适用于潜在危险的方法.这些方法的任何调用者都必须执行完整的安全性检查,以确保使用是安全的,因为不会执行堆栈遍历.