说我有5张桌子,
tblBlogs tblBlogPosts tblBlogPostComment tblUser tblBlogMember
BlogId BlogPostsId BlogPostCommentId UserId BlogMemberId
BlogTitle BlogId CommentText FirstName UserId
PostTitle BlogPostsId BlogId
BlogMemberId
Run Code Online (Sandbox Code Playgroud)
现在我想只检索blogMember实际评论过的那些博客和帖子.简而言之,我该如何编写这个普通的旧SQL?
SELECT b.BlogTitle, bp.PostTitle, bpc.CommentText FROM tblBlogs b
INNER JOIN tblBlogPosts bp on b.BlogId = bp.BlogId
INNER JOIN tblBlogPostComment bpc on bp.BlogPostsId = bpc.BlogPostsId
INNER JOIN tblBlogMember bm ON bpc.BlogMemberId = bm.BlogMemberId
WHERE bm.UserId = 1;
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,一切都是内连接,因此只检索用户在某些博客的某些帖子上评论过的那一行.所以,假设他/她加入了3个博客,其ID为1,2,3(用户加入的博客在tblBlogMembers中),但用户只在博客2中评论过(比如BlogPostId = 1).因此,将检索该行,并且1,3将不会因为它是内部联接.如何在JPQL中编写这种查询?
在JPQL中,我们只能编写简单的查询,例如:
Select bm.blogId from tblBlogMember Where bm.UserId = objUser;
Run Code Online (Sandbox Code Playgroud)
使用objUser提供的地方:
em.find(User.class,1);
Run Code Online (Sandbox Code Playgroud)
因此,一旦我们获得了用户加入的所有博客(此处为blogId代表博客对象),我们就可以循环并完成所有奇特的事情.但我不想陷入这种循环业务,并在我的Java代码中编写所有这些内容.相反,我想把它留给数据库引擎来做.那么,我如何将上述纯SQL写入JPQL?JPQL查询返回什么类型的对象?因为我只从所有表中选择几个字段.我应该在哪个类中对结果进行类型转换?
我想我正确地发布了我的要求,如果我不清楚请告诉我.
更新:根据pascal的回答,我尝试为上述SQL查询编写JPQL查询.我面临一个小问题.此查询正在运行,但不完整:
SELECT bm.blogId FROM BlogMembers bm …
Run Code Online (Sandbox Code Playgroud) 由于基于URL的RESTful Web服务不是对象,因此我们无法调用它们上的方法.我有一个简单的Web服务,其中只有一个方法@GET
.我看了一个截屏视频,它使用了一些javascript库来使用Web服务.但是,我如何在我的JSF项目中使用它?我甚至无法像普通的Web服务那样注入它.请帮忙.我是REST的新手.我不能在托管bean中使用它吗?
如果使用web服务的唯一方法是通过javascript,那么这里的任何人都能告诉我如何通过JQuery使用它的细节吗?
提前致谢 :)
我看了这个链接: -
http://codeigniter.com/user_guide/general/caching.html
它写道: -
When a page is loaded for the first time, the cache file will be written to your system/cache folder
并且我们可以通过缓存视图$this->output->cache(60);
.但它是如何实际工作的?如果我的用户经常更新和删除记录,那么该视图会经常发生变化.它会显示修改过的数据吗?或者缓存会带回旧的陈旧数据吗?(在插入和更新之前)?如果它自动管理并从数据库中提取新数据,那么在cache
功能中指定分钟的目的是什么?
提前致谢 :)
在阅读一本名为Cracking the coding interview
的书时Gayle Laakmann
,我遇到了这个问题
设计算法并编写代码以删除字符串中的重复字符,而无需使用任何其他缓冲区.注意:一个或两个额外的变量是好的.数组的额外副本不是.
这段代码: -
public static void removeDuplicates(char[] str) {
if (str == null) {
return;
}
int len = str.length;
if (len < 2) {
return;
}
int tail = 1;
for (int i = 1; i < len; ++i) {
int j;
for (j = 0; j < tail; ++j) {
if (str[i] == str[j]) {
break;
}
}
if (j == tail) {
str[tail] = str[i];
++tail;
}
} …
Run Code Online (Sandbox Code Playgroud) 究竟是什么意思Storyboard.TargetProperty
.我知道这是我们想要动画的对象的属性.但为什么他们如此复杂如下:
Storyboard.TargetProperty='(Shape.Fill).(SolidColorBrush.Color)'
那么为何不 :-
Storyboard.TargetProperty='Fill'
第二个例子: -
<DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty="(UIElement.RenderTransform).
(TransformGroup.Children)[3].(ScaleTransform.ScaleX)"
Storyboard.TargetName="rectangle">
<EasingDoubleKeyFrame KeyTime="0:0:1"
Value="1.88"/>
</DoubleAnimationUsingKeyFrames>
Run Code Online (Sandbox Code Playgroud)
我需要记住这个奇怪而复杂的目标属性吗?任何帮助或任何记住这一点的技巧和窍门表示赞赏.
提前致谢 :)
我正在使用Facebook C#SDK,它运行良好.我想在我的网站上显示用户的相册及其照片.我正在使用图形api.我确实使用这种方法获得了专辑: -
fb.GetAsync("me/albums/photos", (val) =>
{
if (val.Error == null)
{
IDictionary<string, object> dict = val.Result as IDictionary<string, object>;
}
else
{
// TODO: Need to let the user know there was an error
//failedLogin();
}
});
Run Code Online (Sandbox Code Playgroud)
如何获取每张相册中的照片?
为什么我的清单没有退回任何东西?
class Program
{
static void Main(string[] args)
{
var list = new List<string>{ "apple" , "mango" , "chickoo", "kiwi" };
var searchWord = new List<string>{ "a" };
var predicate = PredicateBuilder.False<string>();
foreach(var word in searchWord)
{
predicate.Or(p => p.Contains(word));
}
var qry = list.Where(predicate.Compile());
foreach (var item in qry)
{
Console.WriteLine(item);
}
Console.Read();
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Joseph Albahari的PredicateBuilder.
我有一张自我加入的桌子.您可以将结构视为标准表来表示组织层次结构.如表: -
MemberId
MemberName
RelatedMemberId
Run Code Online (Sandbox Code Playgroud)
该表包含50000个样本记录.我写了CTE递归查询,它的工作非常好.然而,在我的机器上处理仅50000条记录所需的时间约为3分钟(4GB Ram,2.4 Ghz Core2Duo,7200 RPM HDD).
如何才能提高性能,因为50000不是那么庞大的数字.随着时间的推移,它将继续增加.这是我的存储过程中的查询.查询的目的是选择属于特定成员的所有成员.例如.在公司的所有者之下,每个人都来了.对于Manager,除了所有者返回所有记录.我希望你理解查询的目的.
设置ANSI_NULLS开启GO SET QUOTED_IDENTIFIER
Alter PROCEDURE spGetNonVirtualizedData
(
@MemberId int
)
AS
BEGIN
With MembersCTE As
(
Select parent.MemberId As MemberId, 0 as Level
From Members as parent Where IsNull(MemberId,0) = IsNull(@MemberId,0)
Union ALL
Select child.MemberId As MemberId , Level + 1 as Level
From Members as child
Inner Join MembersCTE on MembersCTE.MemberId = child.RelatedMemberId
)
Select Members.*
From MembersCTE
Inner Join Members On MembersCTE.MemberId = Members.MemberId
option(maxrecursion 0) …
Run Code Online (Sandbox Code Playgroud) 我要求提取<body>
html中存在的所有文本.示例Html输入: -
<html>
<title>title</title>
<body>
<h1> This is a big title.</h1>
How are doing you?
<h3> I am fine </h3>
<img src="abc.jpg"/>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
输出应该是: -
This is a big title. How are doing you? I am fine
Run Code Online (Sandbox Code Playgroud)
我只想将HtmlAgility用于此目的.请不要正则表达式.
我知道如何加载HtmlDocument,然后使用像'// body'这样的xquery,我们可以获取正文内容.但是如何删除输出中显示的html?
提前致谢 :)
任何人都可以发现我正在做的错误吗?
这是代码:
StackPanel stackPanel = new StackPanel();
stackPanel.Orientation = Orientation.Vertical;
for (int index = _elements.Count - 1; index >= 0; index--)
{
FrameworkElement element = _elements[index];
WriteableBitmap tempBitmap = new WriteableBitmap(element, null);
Image image = new Image();
image.Source = tempBitmap;
stackPanel.Children.Add(image);
}
stackPanel.UpdateLayout();
_bitmap = new WriteableBitmap(stackPanel, null);
_bitmap.Invalidate();
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在创建一个临时Image,然后将其添加到stackpanel,然后创建一个最终的WriteableBitmap.堆叠板的第一个孩子的身高是154,第二个是389.这一行之后:
_bitmap.Invalidate();
Run Code Online (Sandbox Code Playgroud)
当我看到PixelHeight时它只有389.我的第一个孩子去了哪里?