标签: dynamicquery

Rails 3将所有Great孙子记录检索为ActiveRecord Collection

所以我正在尝试对模型伟大的granchildren执行查询.关系如此......

比赛>比赛>比赛>球员

和锦标赛模型:

class Tournament < ActiveRecord::Base
  has_many :competitions, :dependent => :destroy
  has_many :matches, :through => :competitions
  has_many :players, :through => :matches

end
Run Code Online (Sandbox Code Playgroud)

目前我所拥有的用于检索所有伟大的孙子孙记录的是:

@results = @tournament.competitions.collect{|b| b.matches.collect{|c| c.players.with_win_count}}.flatten
Run Code Online (Sandbox Code Playgroud)

这是有效的,但问题是它返回一个数组.我要做的是基于用户输入构建动态查询,并且播放器表本质上是所有匹配的结果池,并且用户可以选择仅过滤他想要看到的内容.我最终得到的是一个相当复杂的(取决于用户输入)查询以及无法在数组上执行的附加where子句.为了让您更好地了解这是如何工作的,这是我的代码......

def results
   @tournament = Tournament.find(params[:id])
   @results = @tournament.all_great_grandchildren
   @results.where(params[:player_condition1]) if params[:player_condition1]
   @results.where(params[:player_condition2]) if params[:player_condition2]
   @results.where(params[:player_condition3]) if params[:player_condition3]

   if params[:match_condition]
     #Join to match table so we can query the match fields
     @results.join(:match)
     @results.where(params[:match_condition])
   end
   ....
   @results.order(params[:order]) if params[:order]
end
Run Code Online (Sandbox Code Playgroud)

有没有办法找到没有阵列的任何特定锦标赛的所有伟大的孙子(球员)记录,所以我可以继续调整记录?

arrays join dynamicquery grandchild ruby-on-rails-3

4
推荐指数
1
解决办法
1294
查看次数

向所有请求EF6添加条件

我的大多数实体(并非全部)都有两个称为CompanyId和的属性Deleted。如何为所有选择请求自动插入这两个属性,而不是对整个应用程序中的每个查询手动进行设置。

例:

db.MyEntity.Where(me => me.Id == 1).Select(me => me.Description)
Run Code Online (Sandbox Code Playgroud)
  • 动态检查实体是否具有道具CompanyIdDeleted
  • 大小写肯定,像这样转换

db.MyEntity.Where(me => me.Id == 1 && Deleted == false && CompanyId == 1).Select(me => me.Description

  • 否定大小写,请保持相同的选择查询。

这将有助于我对所有具有可用属性的查询设置这些条件。

entity-framework dynamicquery predicatebuilder entity-framework-6

4
推荐指数
1
解决办法
760
查看次数

以System.Linq.Dynamic的方式动态调用SelectMany

在System.Linq.Dynamic中,有一些方法可以动态地形成Select,Where和其他Linq语句.但SelectMany没有.

Select的方法如下:

    public static IQueryable Select(this IQueryable source, string selector, params object[] values)
    {
        if (source == null) throw new ArgumentNullException("source");
        if (selector == null) throw new ArgumentNullException("selector");
        LambdaExpression lambda = DynamicExpression.ParseLambda(source.ElementType, null, selector, values);
        IQueryable result = source.Provider.CreateQuery(
            Expression.Call(
                typeof(Queryable), "Select",
                new Type[] { source.ElementType, lambda.Body.Type },
                source.Expression, Expression.Quote(lambda)));

        return result;
    }
Run Code Online (Sandbox Code Playgroud)

我试着修改上面的代码,经过几个小时的工作,我找不到出路.

欢迎任何建议.

linq dynamicquery

3
推荐指数
1
解决办法
3418
查看次数

Liferay 中遇到异常:org.hibernate.QueryException:无法解析属性

我在 service.xml 中定义了服务实体,如下所示:

<entity name="LoginData" local-service="true" remote-service="false"> <!-- PK fields --> <column name="userId" type="long" primary="true" /> <column name="loginDate" type="Date" primary="true" /> </entity>

我正在尝试使用 LocalServiceImpl 类中定义的dynamicQuery 来获取行。

DynamicQuery dynamicQuery=DynamicQueryFactoryUtil.forClass(LoginData.class); dynamicQuery.add(RestrictionsFactoryUtil.eq("userId", userId)); dynamicQuery.add(RestrictionsFactoryUtil.between("loginDate", startDate, endDate)); return (List<LoginData>)LoginDataLocalServiceUtil.dynamicQuery(dynamicQuery);

但上面代码的最后一行抛出异常

Caused by: org.hibernate.QueryException: could not resolve property: userId of: com.example.model.impl.LoginDataImpl

有人能告诉我这里出了什么问题吗?或者我错过了什么?

liferay dynamicquery liferay-6

3
推荐指数
1
解决办法
1650
查看次数

Spring Data MongoDB存储库 - JPA规范之类的

是否有像Spring Data MongoDB存储库的JPA规范

如果没有,我如何使用存储库进行动态查询

经典场景可以是具有用户将填充的可选字段的搜索表单.

spring dynamic-queries dynamicquery spring-data spring-data-mongodb

3
推荐指数
1
解决办法
3349
查看次数

使用可选参数在 HQL 中动态搜索查询?

我正在开发一个需要搜索功能的应用程序,我想编写根据参数动态创建的 HQL 查询。目前我有 4 个参数,而搜索所有参数都是必需的,或者根据用户想要搜索的方式需要 1 或 2 或 3 个参数。

public List<Plot> fetchSearchedPlots(int plotType, String plotSize, String min, String max)
    {
        Session session = sessionFactory.getCurrentSession();
        List<Plot> searchedLists = new ArrayList<Plot>();
        String query = "FROM Plot where type = ? and size = ? and price >= ? and price <= ?";
        searchedLists = (List<Plot>)session.createQuery( query )
                .setInteger( 0, plotType )
                .setString( 1, plotSize )
                .setString( 2, min )
                .setString( 3, max ).list();
        return searchedLists;
    }
Run Code Online (Sandbox Code Playgroud)

这是我对所有 4 个参数的一般查询,现在我必须编写一个使用多个可选参数的搜索查询,如何使用可选参数进行此查询?请将我的查询转换为动态可选参数查询?谢谢

java hibernate hql dynamicquery

3
推荐指数
1
解决办法
9823
查看次数

MyBatis中的XML ResultMap与关联

我看到这个问题在Google或Stack上非常奇怪。让我解释。

我的界面方法的注释中有结果图。仅在这种特殊情况下,我才需要动态查询,这就是我决定在xml文件中为接口编写整个映射器的原因。下面,我粘贴整个文件。选择查询应该可以,但是我遇到了一些困难<resultMap>

在不同的Web站点上,我一直在寻找关于此结果图的一对一,一对多,多对一关联和构造的良好解释。

我看到有某种可能性将其分成子查询,子结果映射。但是我已经使用myBatis注释完成了此操作,并且我想使用它。您能指导我,应该如何构造resultMap?我看不到需要构造函数,区分<collection>符,但它仍在大喊……(这就是为什么我加了标记)-IntelliJ强调了整个<resultMap>说法:"The content of element type "resultMap" must match "(constructor?,id*,result*,association*,collection*,discriminator?)"

我知道这似乎很明显,但是我完全不知道如何正确地做。请帮我。

xml映射器文件:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="pl.net.manager.dao.UsageCounterDAO">
    <select id="getUsageCounterList" resultType="pl.net.manager.domain.UsageCounter"
            resultMap="getUsageCounterListMap">
        SELECT * FROM usage_counter WHERE
        <if test="apiConsumerIdsList != null">
            api_consumer IN
            <foreach item="item" index="index" collection="apiConsumerIdsList"
                     open="(" separator="," close=")">
                #{item}
            </foreach>
            AND
        </if>
        <if test="serviceConsumerIdsList != null">
            service IN
            <foreach item="item" index="index" collection="serviceConsumerIdsList"
                     open="(" separator="," close=")">
                #{item}
            </foreach>
            AND
        </if>
        <if test="dateFrom != …
Run Code Online (Sandbox Code Playgroud)

java associations dynamicquery xmlmapper mybatis

3
推荐指数
1
解决办法
6928
查看次数

PLS-00382:Oracle游标中的表达式类型错误

我在oracle 11g中写了一个游标,如下所示:

DECLARE CURSOR QnA_cursor IS 
        SELECT activity_id, question, answer 
        FROM TABLE1
        WHERE question != 'surveyText'
        ORDER BY activity_id, question;

        cur_count       INT := 1;
        que             NVARCHAR2(10);
        ans             NVARCHAR2(10);
        sqlCommand      NVARCHAR2(500);
        RowCountVar     INT;
    BEGIN
        FOR QueAns
        IN QnA_cursor
        LOOP
            IF cur_count = 4 THEN cur_count := 1; END IF;   /* We have only 3 questions for each activity_id */
            que := 'question' || cur_count;     /* question1, question2, question3 */
            ans := 'answer' || cur_count;       /* answer1, answer2, answer3 */

            sqlCommand := …
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql cursor dynamicquery

2
推荐指数
1
解决办法
2万
查看次数

Netlogo 中的动态图表

在我的模型中,海龟的数量是动态的,基于用户使用滑块定义的值。滑块可以取 2 到 10 之间的值。每只海龟都有自己的一组坐标和特征,因此我使用以下代码来创建它们。

create-parties 1 
[set color red set label-color red set label who + 1 set size 3 setxy party1-left-right party1-lib-con ]
create-parties 1 
[set color green set label-color red set label who + 1 set size 3 setxy party2-left-right party2-lib-con ]
if Num-of-parties >= 3
  [ create-parties 1 
[set color blue set label-color red set label who + 1 set size 3 setxy party3-left-right party3-lib-con ] ]
Run Code Online (Sandbox Code Playgroud)

我重复上述操作直到 Num-of-partys =10。

在其中一个模块中,我创建了一个条件,如果乌龟的某个值达到 0,它就会死亡。

在模型的后面部分,我使用 set-current-plot 使用以下代码创建图表:

set-current-plot …
Run Code Online (Sandbox Code Playgroud)

charts dynamicquery netlogo

2
推荐指数
1
解决办法
421
查看次数

如何在动态SQL中转义单引号

我在SQL Server上有以下查询,其中一些值存储在先前计算的变量中:

SET @Command = N'INSERT INTO Products (Id
                                ,Region
                                ,Name
                                ,Category
                                ,CreatedBy
                                ,CreatedOn
                                ,) SELECT ' + @Id + ',
                                            Region, 
                                            ''' + @ProductName + ''', 
                                            Category,
                                            CreatedBy,
                                            CreatedOn FROM ' + @ProductTable + ' 
                                                WITH (NOLOCK) WHERE Id IS NOT NULL';

    EXEC(@Command)
Run Code Online (Sandbox Code Playgroud)

它运行正常,除非@ProductName的值包含引号(例如Jim的Product),在这种情况下,我将收到以下错误:字符串后的引号未封闭

有没有办法在这样的动态查询中处理变量中的单引号,其中插入的所选值之一(在这种情况下为@ProductName)直接是要插入的值,而不是源表上的实际列名需要检索其值以进行插入?

sql sql-server dynamicquery single-quotes

2
推荐指数
1
解决办法
3424
查看次数