我有以下实体结构:业务 - >广告系列 - >促销,其中一个业务可以有多个广告系列,一个广告系列可以有多个促销.一对多关系都被宣布为LAZY.我的代码中有一个位置,我需要急切地从业务中获取这两个集合,所以我这样做:
Query query = entityManager.createQuery("select b from Business b " +
"left join fetch b.campaigns c " +
"left join fetch c.promotions where b.id=:id");
query.setParameter("id", b.getId());
business = (Business) query.getResultList().get(0);
Run Code Online (Sandbox Code Playgroud)
但是,查询返回一个结果列表,其中包含4个Business对象,所有4个对象都引用同一个Business实例.在我的数据库中,此商家下面有3个广告系列,所有3个广告系列都有3个广告系列.
我有两个问题:
首先,我使用List来包含关系的多方面,但是当程序运行时,我得到"org.hibernate.HibernateException:不能同时获取多个包"的异常.然后我用Google搜索了这个异常,看起来我必须使用Set而不是List.所以我将集合更改为Set并且它有效.有人能告诉我为什么列表在这种情况下不起作用?
我期望查询返回单个结果,因为它查询id,这是主键,因此只应返回单个结果.但事实证明它返回List中的4个实例.这是一个问题吗?或者这是预期的行为?
任何帮助将不胜感激.
在需要部分应用程序完全并行的情况下,F#优于C#吗?
我的主要语言是C#,我正在编写一个应用程序,其中构建在应用程序(C#)之上的核心功能必须并且计划非常平行.
我最好在F#中实现这些类吗?
我在Javascript中有一组全局计数器变量:
var counter_0 = 0;
var counter_1 = 0;
var counter_2 = 0;
Run Code Online (Sandbox Code Playgroud)
等等
然后我有一个Javascript函数接受一个映射到那些全局计数器的'索引'号.在这个函数中,我需要使用传递给函数的'index'值来读取和写入这些全局计数器.
我希望它如何工作的示例,但当然根本不起作用:
function process(index) {
// do some processing
// if 'index' == 0, then this would be incrementing the counter_0 global variable
++counter_+index;
if (counter_+index == 13)
{
// do other stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我希望我想要完成的事情是清楚的.如果不是,我会尽力澄清.谢谢.
编辑澄清:
我不是试图增加计数器的名称,而是增加计数器包含的值.
我希望能够指出当Open-Uri open()调用超时或引发异常(如SocketError)时,我按预期处理事情,但是我遇到了麻烦.
这是我的规范(对于SocketError):
@obj.should_receive(:open).with("some_url").and_raise(SocketError)
Run Code Online (Sandbox Code Playgroud)
我正在使用open-uri的对象的一部分:
begin
resp = open(url)
resp = resp.read
rescue SocketError
something = true
end
Run Code Online (Sandbox Code Playgroud)
但是在这种情况下,规范会因nil.read错误而失败.
这是本周我第二次遇到这个问题,上一次我试图open()用a 换行时试图模拟TimeoutError timeout() {},那次我放弃了,只是通过打开课程导致了实际的超时.我能明显地造成这种试图通过调用一个无效的URL抛出一个SocketError,但我敢肯定有使用RSpec嘲笑这一点的正确道路.
更新:我显然没有想到深夜,错误实际上是我在SocketError之后重新尝试URL时,and_raise(SocketError)部分工作正常.
使用一个或多个因子,Arc或其他任何例子(注意:因素是一个不好的例子,因为它有一大堆实用的库).假设您正在考虑使用编程语言.拥有大量实用库是否重要?如果您的语言设计得很好,那么创建"字符串"库或"日期"库会很容易.甚至可能是一个Web框架?
我提到这一点,因为当一种语言出现时,似乎有人提出了"实用图书馆".
我发现维护性指数(MI)的推荐值如下:
这些价值取决于技术吗?例如,对于大型机来说,70的值是好的,但对于Java来说难以维护吗?
可以使用独立于技术的相同尺度吗?
当闪光灯具有键盘焦点时,闪光灯会截取CTRL+ T(新标签)和CTRL+ N(新窗口).
有没有办法将这些事件传递给浏览器以便它们工作(打开新选项卡,打开新浏览器)或是否有这些操作的javascript命令?
在C#中是否可以创建一个只能从另一个函数中调用的函数?
你可以这样做吗?
private void a()
{
b();
c();
...do something else
private void b()
{
..do something but can only be called from a()
}
private void c()
{
..do something but can only be called from a()
}
}
Run Code Online (Sandbox Code Playgroud)
我想要这样做的原因是该功能b()和c()拆分一些实现细节,a()它们只是更清晰,更容易在自己的范围内阅读.但是,这些函数对于类没有用,因为a()在调用它们之后必须进行一些处理.
我想让登录和注册的用户创建他将成为管理员的额外用户帐户.这些帐户将是与创建它们的用户绑定的特殊"下级"帐户.他应该能够添加/修改/删除这些帐户,就像Google应用程序管理员如何管理公司帐户一样(您是普通用户,但也创建/销毁其他用户.)
下级帐户无法创建/修改/删除帐户(除了更改自己的密码和正常的用户行为.)我正在为所有这些帐户使用django auth模型.在不使用任何管理代码的情况下,从我自己定制的网页中访问auth方法添加/修改/删除帐户的好方法是什么?
我正在迁移的桌面应用程序大量使用了树视图控件,并且许多调用TreeNode.FirstSibling例如
'UPGRADE_ISSUE: MSComctlLib.Node property tvTreeView.SelectedItem.FirstSibling was not upgraded.
If tvTreeView.SelectedNode.FirstSibling.Index = 1 Then
...
End If
Run Code Online (Sandbox Code Playgroud)
是否有相同的功能使用?