小编cow*_*wls的帖子

CakePHP:在使用find方法构建查询时,如何使用"HAVING"操作?

我正在尝试使用CakePHP paginate()方法在SQL查询中使用"HAVING"子句.

经过一些搜索,看起来这是无法通过Cake的paginate()/ find()方法实现的.

我的代码看起来像这样:

$this->paginate = array(
        'fields' => $fields,
        'conditions' => $conditions,
        'recursive' => 1,
        'limit' => 10, 
        'order' => $order,
        'group' => 'Venue.id');
Run Code Online (Sandbox Code Playgroud)

其中一个$字段是别名"distance".我想在距离<25时添加查询(例如,距离<25).

到目前为止,我已经看到了两个解决方法,不幸的是,这两个方法都不适合我 我见过的两个是:

1)在"group"选项中添加HAVING子句.例如'group' => 'Venue.id HAVING distance < 25'.当与分页结合使用时,这似乎不起作用,因为它会混淆执行的初始计数查询.(即尝试SELECT distinct(Venue.id HAVING distance < 25)哪个显然是无效的语法.

2)在WHERE条件之后添加HAVING子句(例如WHERE 1 = 1 HAVING field > 25)这不起作用,因为看起来HAVING子句必须 Cake生成的查询中的WHERE条件之后放置的组语句之后.

有没有人知道使用CakePHP的find()方法做到这一点的方法?我不想使用query(),因为这会涉及大量的返工,也意味着我需要实现自己的分页逻辑!

提前致谢

mysql cakephp cakephp-2.x

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

Jenkins中SVN的身份验证错误

我开始了一个项目,我必须使用外部svn(我在代理下).当我把url放在配置项目中时,Jenkins无法访问存储库,所以我填写了凭证(存储库URL,用户名和密码),但这里是错误:

FAILED: svn: E175002: OPTIONS /.../trunk/www failed

org.tmatesoft.svn.core.SVNException: svn: E175002: OPTIONS /.../trunk/www failed
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:304)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:289)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:277)
        at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:696)
        at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:619)
        at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:103)
        at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1018)
        at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.testConnection(DAVRepository.java:99)
        at hudson.scm.SubversionSCM$DescriptorImpl.postCredential(SubversionSCM.java:1968)
        at hudson.scm.SubversionSCM$DescriptorImpl.doPostCredential(SubversionSCM.java:1913)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288)
        at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151)
        at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90)
        at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111)
        at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
        at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
        at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
        at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
        at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:488)
        at org.kohsuke.stapler.Stapler.service(Stapler.java:162)
        at …
Run Code Online (Sandbox Code Playgroud)

svn jenkins

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

Java JDBC准备语句最大参数标记

我使用PreparedStatement具有2000多个参数标记构建大型数据库调用.

我得到这个错误

Caused by: java.sql.SQLException: Prepared or callable statement has more than 2000 parameter markers.
    at net.sourceforge.jtds.jdbc.SQLParser.parse(SQLParser.java:1139)
    at net.sourceforge.jtds.jdbc.SQLParser.parse(SQLParser.java:156)
    at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.<init>(JtdsPreparedStatement.java:107)
Caused by: java.sql.SQLException: Prepared or callable statement has more than 2000 parameter markers. 
Run Code Online (Sandbox Code Playgroud)

我尝试搜索API文档和谷歌但无法找到如何配置它.

有谁知道是否有可能达到这个限制?我知道这将是一个缓慢的数据库调用,但现在这很好.

从长远来看,这也会给我带来任何问题,我最好分批运行吗?

java jdbc prepared-statement

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

将cakephp从2.2版升级到2.3时会涉及哪些步骤?

我想将我的CakePHP应用程序从2.2版升级到2.3版,我该怎么办?

是否足以覆盖lib文件夹?我检查了差异并注意到app文件夹中也有变化,所以不清楚是否需要更新这些变化.

迁移指南没有关于如何执行升级的信息.

cakephp

12
推荐指数
1
解决办法
4810
查看次数

使用CakePHP的FormHelper自定义输入HTML

我正在尝试使用CakePHP的表单助手来生成一些输入元素.

我想要生成的HTML是:

<div class="formRow">
    <label>LabelText:</label>
    <div class="formRight">
        <input name="data[User][email_address]" type="text" value="">
    </div>
    <div class="clear"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

我已经看过Cake文档(使用2.1),我找不到有关如何执行此操作的足够信息.

看起来我需要在输入法上使用format选项,但无法弄清楚如何正确使用它.特别关注输入字段周围的div,上面有一个类名.

我试过这样的事:

echo $this->Form->input('email_address', array(
                                                "input" => array('attributes' => array('wrap' => 'div','class' => 'formRight'))));
Run Code Online (Sandbox Code Playgroud)

但这并没有改变任何标记,只是抛出这个错误:注意(8):数组到字符串转换[CORE\Cake\View\Helper.php,第459行]

所以我的问题是如何让这个表单助手创建该标记?

任何帮助非常感谢

cakephp

9
推荐指数
1
解决办法
9461
查看次数

SQL:LIKE vs = bug?

我有一个非常奇怪的行为,我在SQL DB中无法理解(我正在使用MySQL 5.5.8):

我在表中有一个varchar(10)的名字:joe.

如果像这样运行一个sql:

SELECT ID FROM `names` WHERE `name` = 'joe '
Run Code Online (Sandbox Code Playgroud)

我得到一个结果:乔,但这是错的,因为在表中我没有任何'乔'(最后有一个空格.我只有'乔'(没有空格)

但是,如果我执行:

SELECT ID FROM `names` WHERE `name` LIKE 'joe '
Run Code Online (Sandbox Code Playgroud)

我得到了我的期望:没有.据我所知=应该是"精确"匹配,而像是更松散,能够使用子字符串和%.

我错过了什么?

mysql sql database

9
推荐指数
1
解决办法
224
查看次数

JAX-WS Soap错误没有出现在WSDL中

我正在使用JAX-WS创建一个Web服务(我使用Java到WSDL方法创建它).

我无法按照我的要求让我的例外工作.

我创建了以下异常类:

@WebFault
public class MyWebServiceException extends SOAPFaultException {

    private static final long serialVersionUID = 8234753208722614057L;

    protected MyWebServiceException(SOAPFault fault) {
        super(fault); 
    }

    protected MyWebServiceException(SOAPFault fault, Throwable throwable) {
        this(fault);
        super.setStackTrace(throwable.getStackTrace());
    }
}
Run Code Online (Sandbox Code Playgroud)

这允许我在SOAP响应中包含以下内容:

<faultcode>E0010</faultcode>
<faultstring>Invalid Report</faultstring>
<detail>
    <ns2:exception class="com.example.web.common.exceptions.MyWebServiceException" note="To disable this feature, set com.sun.xml.ws.fault.SOAPFaultBuilder.disableCaptureStackTrace system property to false" xmlns:ns2="http://jax-ws.dev.java.net/">
     <message>Invalid Report</message>
     <ns2:stackTrace>
     <ns2:frame class="com.example.web.common.exceptions.ExceptionHandler" file="ExceptionHandler.java" line="34" method="getWebException"/>
Run Code Online (Sandbox Code Playgroud)

但是,因为我的异常是SOAPFaultException扩展的RuntimeException,所以它没有被添加到WSDL中,因此当服务的用户生成其客户端存根时,不包括异常.

有谁知道如何创建此异常以给我预期的输出(即包括faultcode和faultstring),但也出现在WSDL中(我想它需要是一个经过检查的异常)

我搜索了高低,想出了我已经拥有的东西!

java exception-handling jax-ws

9
推荐指数
1
解决办法
9959
查看次数

Android天还剩下

我需要CountDown Days从一个日期到第二个日期

例如

CURRENT_DATE:3/1/2013 NEXT_DATE:21/01/2013

然后它显示::17 DAYS LEFT

我实现了这样的代码

String inputDateString = "01/22/2013";
Calendar calCurr = Calendar.getInstance();
Calendar calNext = Calendar.getInstance();
calNext.setTime(new Date(inputDateString)); 

if(calNext.after(calCurr)) 
{
    long timeDiff = calNext.getTimeInMillis() - calCurr.getTimeInMillis();
    int daysLeft = (int) (timeDiff/DateUtils.DAY_IN_MILLIS);
    dni.setText("Days Left: "+daysLeft);
}
else
{
    long timeDiff = calCurr.getTimeInMillis() - calNext.getTimeInMillis();
    timeDiff = DateUtils.YEAR_IN_MILLIS - timeDiff;
    int daysLeft = (int) (timeDiff/DateUtils.DAY_IN_MILLIS);
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来实现这些?

java time android

7
推荐指数
1
解决办法
5337
查看次数

Java中的信号量和线程池

我对Java中的信号量概念并不十分清楚并试图理解它.

我在阅读oracle docs(http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Semaphore.html)和其他一些页面之后的理解,它类似于一个带有计数的锁许可数量.

它通常用于创建资源池.在这里我感到困惑,还有ThreadPoolExecutor可以给我一个线程池.那么区别是什么呢?在哪种情况下使用哪一个?

java concurrency

7
推荐指数
2
解决办法
3945
查看次数

Jenkins SVN在结账期间“SSL对等方关闭不正确”

我在使用 SVN 作为 SCM 通过 Jenkins 运行 maven 发布插件时遇到问题。

在检查大型项目时,我收到以下错误,我搜索了高低的分辨率,但还没有找到任何东西,这似乎是使用 SVN Kit 的 Java SVN 客户端的问题。

svn: E175002: SSL peer shut down incorrectly

12:37:17    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)

12:37:17    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)

12:37:17    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:777)

12:37:17    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:382)

12:37:17    ... 34 more

12:37:17 Caused by: svn: E175002: REPORT request failed on '/svn/mx/!svn/vcc/default'

12:37:17    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208)

12:37:17    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:775)

12:37:17    ... 35 more

12:37:17 Caused by: svn: E175002: SSL peer shut down incorrectly

12:37:17    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:109)

12:37:17    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:526)

12:37:17    ... 35 more

12:37:17 …
Run Code Online (Sandbox Code Playgroud)

svn svnkit maven maven-release-plugin jenkins

5
推荐指数
1
解决办法
9631
查看次数