小编San*_*ani的帖子

Hibernate @OneToOne即使使用@Fetch(FetchMode.JOIN)也会执行多个查询

考虑EmployeeAddress关系.之间存在一一对一映射EmployeeAddress.以下是型号:

@Entity
@Table(name = "Address")
public class Address
{
    @Id
    @GeneratedValue
    @Column(name = "addressId")
    private int addressId;

    @Column(name = "city")
    private String city;

    .
    .
}

@Entity
@Table(name = "Employee")
public class Employee
{
    @Id
    @Column(name = "employeeId")
    private int employeeId;

    @Column(name = "name")
    private String name;

    @OneToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "addressId")
    @Fetch(FetchMode.JOIN)
    private Address address;

    .
    .
}
Run Code Online (Sandbox Code Playgroud)

现在,当我执行以下HQL查询时,它会在内部生成两个查询.一个用于获取Employee,另一个用于获取地址.

"FROM Employee WHERE id = " + 1

Hibernate生成的SQL查询

Hibernate: select …

hibernate query-optimization one-to-one fetch

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

当在where子句中使用sleep()时,MySql查询花费的时间太长

我已经阅读了MySql中的sleep(n)函数,该函数应该睡眠n秒,如果不中断则返回0,如果中断则返回1.

如果我在select子句中使用sleep(),这很有效.例如,以下查询在10秒后返回结果.

SELECT id, sleep(10) FROM versions WHERE id = 123

但是,如果我在where子句中使用sleep(10),则查询会花费太长时间.

SELECT id FROM versions WHERE id = 123 OR sleep(10)=1

任何关于它为什么表现如此的想法?

mysql

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

在 MacOS 上禁止 node-gyp 日志消息

我正在尝试couchbase使用npm. 我安装了node(v9.6.1) 和npm(5.8.0)的最新版本。似乎预构建的二进制文件不适用于我的环境。所以它试图在本地构建二进制文件。

在 期间npm install,我看到很多如下消息:

prebuild-install || node-gyp rebuild

prebuild-install info begin Prebuild-install version 2.3.0
prebuild-install info looking for local prebuild @ prebuilds/couchbase-v2.4.3-node-v59-darwin-x64.tar.gz
prebuild-install info looking for cached prebuild @ /Users/XXXXXX/.npm/_prebuilds/https-github.com-couchbase-couchnode-releases-download-v2.4.3-couchbase-v2.4.3-node-v59-darwin-x64.tar.gz
prebuild-install http request GET https://github.com/couchbase/couchnode/releases/download/v2.4.3/couchbase-v2.4.3-node-v59-darwin-x64.tar.gz
prebuild-install http 404 https://github.com/couchbase/couchnode/releases/download/v2.4.3/couchbase-v2.4.3-node-v59-darwin-x64.tar.gz
prebuild-install WARN install No prebuilt binaries found (target=9.6.1 runtime=node arch=x64 platform=darwin)
  COPY ../deps/lcb/include/libcouchbase/libuv_io_opts.h
  COPY ../deps/lcb/include/libcouchbase/plugins/io/libuv/plugin-libuv.c
  COPY ../deps/lcb/include/libcouchbase/plugins/io/libuv/plugin-internal.h
  COPY ../deps/lcb/include/libcouchbase/plugins/io/libuv/libuv_compat.h
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/bucketconfig/bc_cccp.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/bucketconfig/bc_file.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/bucketconfig/bc_http.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/bucketconfig/bc_static.o
  CXX(target) Release/obj.target/couchbase/deps/lcb/src/bucketconfig/confmon.o …
Run Code Online (Sandbox Code Playgroud)

macos logging node.js couchbase node-gyp

5
推荐指数
0
解决办法
676
查看次数

对象内存分配

我想知道Ruby中的内存分配是如何工作的.

在Ruby中,我们可以打开一个类定义并添加更多的实例变量/方法.在这种情况下,新对象比现有实例需要更多内存.它如何在内部跟踪分配给实例的内存?

例如,我们有以下类定义:

class MyClass
    def myMethod
        @a = 5
    end
end
Run Code Online (Sandbox Code Playgroud)

我们创建了一个实例MyClass:

m = MyClass.new
m.myMethod
Run Code Online (Sandbox Code Playgroud)

此时,m会分配一些内存.现在,我们打开类定义并添加另一个实例变量b.

class MyClass
    def mySecondMethod
        @b = 5
    end
end
Run Code Online (Sandbox Code Playgroud)

此新方法mySecondMethod和实例变量b也可在现有实例m中使用Myclass.

调用mySecondMethod实例化和初始化b:

m.mySecondMethod
Run Code Online (Sandbox Code Playgroud)

Ruby如何内部管理内存?例如m,它是否重新分配内存块,还是维护某些指向新分配内存的指针?

ruby memory-management object

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

无法在单独的类中获取Executor的模拟实例

我试图从java.util.concurrent包中模拟ExecutorService和Executors.

如果我试图在同一个类(测试类)中获取对象,我可以获取模拟对象.但是,如果我尝试在另一个类(我想要测试的类)中获取模拟对象,那么它将从java.util.concurrent返回实际对象.以下是代码段.

我要测试的课程:

public class MyClass
{
    public void myMethod()
    {
        ExecutorService executorService = Executors.newFixedThreadPool(2, new MyThreadFactory());

        for (int count = 0; count < 2; count++)
        {
            executorService.submit(new Thread());
        }
    }
}

class MyThreadFactory implements ThreadFactory
{
    @Override
    public Thread newThread(Runnable r)
    {
        return null;
    }
}    
Run Code Online (Sandbox Code Playgroud)

我的Test类看起来像:

@RunWith(PowerMockRunner.class)
@PrepareForTest(Executors.class)
public class MyClassTest
{
    @Test
    public void testMyMethod()
    {
        prepareMocks();            

        //Code to get mocked object (See testMethod below)
    }

    private void prepareMocks()
    {
        ExecutorService executorService = PowerMock.createMock(ExecutorService.class);
        EasyMock.expect(executorService.submit(EasyMock.anyObject(Runnable.class))).andReturn(null).anyTimes();

        PowerMock.mockStatic(Executors.class);
        EasyMock.expect(Executors.newFixedThreadPool(EasyMock.anyInt(), …
Run Code Online (Sandbox Code Playgroud)

unit-testing easymock mocking powermock executors

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

Rails - 未定义的方法`authenticate'

我在尝试验证用户时收到以下错误.

NoMethodError (undefined method验证'for#)`

当我从rails控制台执行命令时,user.authenticate('password')成功(即返回用户对象).

irb(main):008:0> user.authenticate("sanket")
=> #<User id: 2, name: "Sanket", email: "sanket.meghani@infibeam.net", created_at: "2014-02-14 08:58:28", updated_at: "2014-02-14 08:58:28", password_digest: "$2a$10$KNuBgvqVDIErf3a24lMcaeNt1Hyg0I8oreIQSEYsXY4T...", remember_token: "3b64273a4fcced7c8bf91f7f7490e60a5919658d">
Run Code Online (Sandbox Code Playgroud)

但是,当我将user.authenticate放在帮助器类中,并使用url访问它时,它说

undefined method 'authenticate' for #<ActiveRecord::Relation:0x007fd9506dce38>

我正在关注Rails教程

我的用户模型如下:

class User < ActiveRecord::Base        
    attr_accessible :email, :name, :password, :password_confirmation
    has_secure_password

    .
    .
    .
end
Run Code Online (Sandbox Code Playgroud)

session_helper.rb中的相关方法如下所示:

def create
    user = User.where(:email => params[:session][:email].downcase)

    if user && user.authenticate(params[:session][:password])
        sign_in user
        redirect_to user
    else
        flash.now[:error] = 'Invalid email/password combination'
        render "new"
    end
end
Run Code Online (Sandbox Code Playgroud)

它在线提供上述错误if user && user.authenticate(params[:session][:password]) …

ruby authentication activerecord ruby-on-rails-3

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

Webpack - Babel - 解析JSX:SyntaxError:意外的令牌

我正在尝试使用webpack创建一个React应用程序.我正在使用babel来传输.jsx文件.但似乎,它不是使用babel加载器加载.jsx文件.我收到以下错误:

ERROR in ./app.jsx
Module parse failed: C:\codebase\react-demo/app\app.jsx Unexpected token (7:15)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (7:15)
    at Parser.pp$4.raise (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:2221:15)
    at Parser.pp.unexpected (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:603:10)
    at Parser.pp$3.parseExprAtom (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:1822:12)
    at Parser.pp$3.parseExprSubscripts (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:1715:21)
    at Parser.pp$3.parseMaybeUnary (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:1692:19)
    at Parser.pp$3.parseExprOps (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:1637:21)
    at Parser.pp$3.parseMaybeConditional (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:1620:21)
    at Parser.pp$3.parseMaybeAssign (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:1597:21)
    at Parser.pp$3.parseExpression (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:1573:21)
    at Parser.pp$1.parseReturnStatement (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:839:33)
    at Parser.pp$1.parseStatement (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:699:34)
    at Parser.pp$1.parseBlock (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:981:25)
    at Parser.pp$3.parseFunctionBody (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:2105:24)
    at Parser.pp$3.parseMethod (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:2075:10)
    at Parser.pp$1.parseClassMethod (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:1137:25)
    at Parser.pp$1.parseClass (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:1118:14)
    at Parser.pp$1.parseStatement (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:697:19)
    at Parser.pp$1.parseTopLevel (C:\codebase\react-demo\node_modules\acorn\dist\acorn.js:638:25) …
Run Code Online (Sandbox Code Playgroud)

jsx reactjs webpack react-jsx babeljs

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