如果你有两个班:
class A {
@Id
public Long id;
}
class B {
@Id
public Long id;
@ManyToOne
@JoinColumn(name = "parent_id", referencedColumnName = "id")
public A parent;
}
Run Code Online (Sandbox Code Playgroud)
B - > A是多对一的关系.我知道我可以在A中添加B的集合但是我不想要这种关联.
所以我的实际问题是,是否有创建SQL查询的HQL或Criteria方法:
select * from A left join B on (b.parent_id = a.id)
Run Code Online (Sandbox Code Playgroud)
这将检索具有引用A的每个B记录的笛卡尔积的所有A记录,并且将包括没有B引用它们的A记录.
如果您使用:
from A a, B b where b.a = a
Run Code Online (Sandbox Code Playgroud)
那么它是一个内连接,你没有收到没有B引用它们的A记录.
我没有找到一个没有两个查询的好方法,所以任何不到这个都会很好.
谢谢.
Paul Jungwirth 对codinghorror.com进行了博客评论,其中包括一些编程任务:
你有这个数字123456789.在每个数字之间,您必须插入任何内容,加号或乘法符号,以便生成的表达式等于2001.编写一个打印所有解决方案的程序.(那里有两个.)
无聊,我想,我有一个去,但如果我能得到2001年的结果,我会被诅咒.我认为下面的代码是合理的,我认为2001年有零解决方案.根据我的说法.代码,2002年有两个解决方案.我是对还是错了?
/**
* Take the numbers 123456789 and form expressions by inserting one of ''
* (empty string), '+' or '*' between each number.
* Find (2) solutions such that the expression evaluates to the number 2001
*/
$input = array(1,2,3,4,5,6,7,8,9);
// an array of strings representing 8 digit, base 3 numbers
$ops = array();
$numOps = sizeof($input)-1; // always 8
$mask = str_repeat('0', $numOps); // mask of 8 zeros for padding
// generate …Run Code Online (Sandbox Code Playgroud) 我正在做一个太慢的网络请求.GetResponseStream()需要大约3.2秒,ReadToEnd()需要0.8秒
如果我在网络浏览器中运行相同的请求,我会在不到一秒的时间内得到响应...我想知道我能做些什么来加快请求速度以及可能导致速度变慢的原因?
基于我在这里看到的其他问题,我在app.config +启用的最大连接中禁用了代理,以防万一(它仍然很慢).我添加的部分是:
<system.net>
<defaultProxy enabled="false">
<proxy/>
<bypasslist/>
<module/>
</defaultProxy>
<connectionManagement>
<add address="*" maxconnection="65000" />
</connectionManagement>
Run Code Online (Sandbox Code Playgroud)
这是代码的样子和缓慢的截图:
alt text http://i45.tinypic.com/2uy1xc4.jpg
我很感激任何帮助... 4-8秒对于用户等待ajax请求完成来说太长了.
谢谢!
是否有可能has_many :through在Rails中有多个相互关系的关系?我收到了这样的建议,作为我发布的另一个问题的解决方案,但一直无法让它工作.
好友是通过联接表的循环关联.我的目标是创建一个has_many :throughfor friends_comments,所以我可以采取行动,User并user.friends_comments在一个查询中获取他的朋友发表的所有评论.
class User
has_many :friendships
has_many :friends,
:through => :friendships,
:conditions => "status = #{Friendship::FULL}"
has_many :comments
has_many :friends_comments, :through => :friends, :source => :comments
end
class Friendship < ActiveRecord::Base
belongs_to :user
belongs_to :friend, :class_name => "User", :foreign_key => "friend_id"
end
Run Code Online (Sandbox Code Playgroud)
这看起来很棒,而且很有意义,但不适合我.当我尝试访问用户的friends_comments时,这是我在相关部分中遇到的错误:
ERROR: column users.user_id does not exist
: SELECT "comments".* FROM "comments" INNER JOIN "users" ON "comments".user_id = "users".id WHERE (("users".user_id = …
基本上我想在JavaScript中创建一个很多对象的大对象.就像是:
var objects = {}
for (x)
objects.x = {name: etc}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
以下方法/技术的名称是什么(我将尝试描述我能做的最好的事情,可能需要了解"memoization"的背景知道为什么这种技术非常有用):
你开始一些潜在的长度异步计算,你意识到相同的计算已经开始但尚未完成,你在第一次计算时"捎带".然后,当第一个计算结束时,它不会发出一个而是两个回调.
目标是不要不必要地开始第二次计算,因为你知道已经有相同的计算运行.
请注意,尽管并非完全不同,但我并不是在寻找"memoization"的特殊缓存情况:memoization就是当你开始计算并找到已经完成的相同计算的缓存(memoized)结果时你可以重用.
在这里,我正在寻找技术的名称,其方式与memoization有点类似(因为它可能对于memoization是一种有用的技术的某些原因很有用),除了它重用了结果第一次计算,即使在您发出第二次计算时尚未完成第一次计算.
我一直称这种技术为"捎带",但我不知道这是否正确.
我实际上不止一次使用它作为某种"类固醇的记忆",它非常方便.
我只是不知道这个(先进的?)技术的名称是什么.
编辑
该死的,我想评论一下epatel的答案,但它消失了.epatel的回答给了我一个想法,这种技术可以称为"懒惰的记忆" :)
我正在寻找列表中元素的存在.
在Python中有一个in关键字,我会做类似的事情:
if element in list:
doTask
Run Code Online (Sandbox Code Playgroud)
在Perl中是否有类似的东西而不必手动遍历整个列表?
是否有内置函数在Matlab中删除方阵的Kth行和列?
希望从图中可以清楚地看出:
alt text http://img121.imageshack.us/img121/8145/cutmatrix.png
我有一个巨大的字符串,如下所示:
"文本
文本
文本
文本
文本
文本
文本
文本
文本
文本
文本
文本
"
请注意,在每个文本块之间是一个新行.另请注意,最后一个文本块后面有两行新行.所以,当我做一个
string[] strArray = Regex.Split(content, "\r\n");
这很有效,因为它寻找回车的模式,然后是新线.但是,对于数组中的最后一个条目,它只创建一个""(空字符串),因为它在最后一个额外的新行上进行了拆分.
所以我想要一个正则表达式,而不是"\ r \n",它将在\ r \n上分开并且恰好是ONE \n.
有任何想法吗?
c# ×2
64-bit ×1
algorithm ×1
arrays ×1
asp.net ×1
asp.net-mvc ×1
associations ×1
c++ ×1
hibernate ×1
java ×1
javascript ×1
loops ×1
macos ×1
many-to-one ×1
matlab ×1
matrix ×1
nomenclature ×1
object ×1
orm ×1
performance ×1
perl ×1
php ×1
regex ×1
split ×1