小编Edy*_*rne的帖子

Ember Data没有在save()上序列化记录ID,导致PUT没有id?

我有一条创建新记录的路线,如下所示:

App.ServicesNewRoute = Ember.Route.extend({
    model : function() {
        return this.store.createRecord('service');
    },

    setupController: function(controller, model) {
        controller.set('model', model);
    },

});
Run Code Online (Sandbox Code Playgroud)

然后我将该模型的属性绑定到路径的模板,使用{{input type="text" value=model.serviceId ... }}它很好,模型在填充表单时填充.

然后我保存记录:

App.ServicesNewController = Ember.ObjectController.extend({
    actions : {
        saveService : function() {
            this.get('model').save(); // => POST to '/services'
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

哪个也有效.

然后我再次单击保存按钮,现在save方法按预期执行PUT,因为模型有一个id设置(id:102):

在此输入图像描述

但是当我在Dev Tools中查看PUT请求时,我发现id属性未被序列化:

在此输入图像描述

结果,在后端创建了一个新实例,而不是更新现有实例.

请忽略serviceId属性,它只是一个string与记录ID无关的常规属性,应该只是命名id.

我不知道为什么id没有被序列化...我不能在模型上定义一个id属性,因为Ember Data不允许它,它是隐含的.所以我不知道我错过了什么......

任何帮助是极大的赞赏!

javascript ember.js ember-data

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

在读取实体时,找不到MessageBodyReader,Jersey测试会一直失败?

我有一个REST API返回的JSON格式的对象,用Content-Typeapplication/json,非常标准.

我正在使用Jersey的测试框架创建一个基本的TestNg Jersey测试,并希望针对在Tomcat中独立部署的外部容器运行一个简单的测试.

对于不需要读取响应实体的测试,但是那些确实失败的测试设置似乎没问题:

org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyReader not found for media type=application/json, type=class com.test.Status, genericType=class com.specktro.orchid.rest.api.Status.
    at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:225)
    at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:149)
    at org.glassfish.jersey.message.internal.MessageBodyFactory.readFrom(MessageBodyFactory.java:1124)
    at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:851)
    at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:783)
    at org.glassfish.jersey.client.ClientResponse.readEntity(ClientResponse.java:326)
    at org.glassfish.jersey.client.InboundJaxrsResponse$1.call(InboundJaxrsResponse.java:111)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:399)
    at org.glassfish.jersey.client.InboundJaxrsResponse.readEntity(InboundJaxrsResponse.java:108)
    at com.specktro.orchid.rest.api.tests.CoreTest.test(CoreTest.java:81)
    at com.specktro.orchid.rest.api.tests.CoreTest.second(CoreTest.java:46)
    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.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
    at org.testng.TestRunner.privateRun(TestRunner.java:767)
    at org.testng.TestRunner.run(TestRunner.java:617)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
    at org.testng.SuiteRunner.access$000(SuiteRunner.java:37) …
Run Code Online (Sandbox Code Playgroud)

java rest jersey jersey-client jersey-2.0

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

如何强制Hibernate为生成的SQL语句添加引号?

Hibernate为特定条件查询生成无效SQL.我可以通过向WHERE子句中使用的值添​​加单引号来手动修复查询.

为了解决这个问题,我更改了查询:

where (role0_.ROLE_ID=2L )
Run Code Online (Sandbox Code Playgroud)

至:

where (role0_.ROLE_ID=`2L` )
Run Code Online (Sandbox Code Playgroud)

如何强制hibernate添加单引号(在mysql中它是单引号但在其他数据库系统中它可能是其他的东西)来包含生成的SQL查询中使用的

完整生成的查询是:

select permission1_.PERMISSION_ID as PERMISSION1_12_,
    permission1_.IS_REQUIRED as IS2_12_,
    permission1_.SOURCE_ROLE_ID as SOURCE3_12_,
    permission1_.TARGET_ROLE_ID as TARGET4_12_
from (
        select ROLE_ID,
        NAME,
        DESCRIPTION,
        IS_ACTION,
        LABEL,
        null as FIRST_NAME,
        null as LAST_NAME,
        null as PASSWORD_HASH,
        1 as clazz_ from GROUPS
    union
        select ROLE_ID,
            NAME,
            null as DESCRIPTION,
            null as IS_ACTION,
            null as LABEL,
            FIRST_NAME,
            LAST_NAME,
            PASSWORD_HASH,
            2 as clazz_ from USERS
    )
role0_ inner join PERMISSIONS permission1_ on role0_.ROLE_ID=permission1_.SOURCE_ROLE_ID
    where (role0_.ROLE_ID=2L ) …
Run Code Online (Sandbox Code Playgroud)

java sql hibernate syntax-error

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

如何在 testCompile 和 test 阶段之间(在 Surefire 执行之前)执行 Maven 的 antrun?

在我的 Maven 构建中,我有一小块 Ant 代码需要在 Surefire 开始执行一些配置之前运行。

代码是用antrun执行的,但是我不能在Surefire之前让antrun被执行。

这是我的构建输出的相关部分:

[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ com...tests ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 7 source files to C:\...\com...tests\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.16:test (default-test) @ com...tests ---
[INFO] Surefire report directory: C:\...\com...tests\target\surefire-reports
Run Code Online (Sandbox Code Playgroud)

基本上我需要 antrun 在maven-compiler-plugin:3.1:testCompile和之间执行maven-surefire-plugin:2.16:test

我尝试将antrun绑定到测试阶段并将其放在POM文件中的surefire插件之前,但它总是在Surefire插件之后执行。我还尝试将它配置为在 testCompile 阶段运行,并将其放在 maven-compiler-plugin 插件之后,但也没有成功......它在surefire之后执行。

有谁知道如何让它在这两者之间执行?

谢谢!

爱德华多

java maven-3 maven maven-surefire-plugin maven-antrun-plugin

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

Intellij Tools Layout:调试时项目树可以占据整个高度吗?

我正在尝试从 Eclipse 切换到 IntelliJ IDEA。到目前为止,一切都很好。然而,Eclipse 使我能够以任何我想要的方式配置我的工作区,而且即使在 IntelliJ 中配置最基本的东西,我也遇到了很多麻烦。

在特定情况下,我希望调试视图位于顶部,并且希望左侧的项目资源管理器树占据整个高度。这就是我想要的,我可以在 Eclipse 中轻松完成:

我想要的布局,只需在 Eclipse 中拖动工具即可轻松完成。

在 Jetbrain 的 IntelliJ IDEA 中我只能实现这一点:

我可以在 IntelligJ 中实现什么

这显然很糟糕。我不需要事件日志获取整个宽度,也不需要调试器获取整个宽度。我希望左侧的项目资源管理器占据整个空间,然后剩下的内容可以由顶部和底部的工具使用。

我承认我对所有的“模式”有点困惑……拆分、对接等等。看来我无法将东西拖到我需要的地方。

这可能吗?如果是这样,我该如何配置?

eclipse layout intellij-idea

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

如何连接来自 3 个小整数的字节以生成更大的数字,该数字由 Python 中的这些字节表示?

我有 3 个小整数(小于 255),因此可以用一个字节表示。

我想从那个 3 个字节的序列中创建一个更大的 int。

例如,如果这 3 个整数分别为 1、2 和 3,我将有:

000000010000001000000011

然后我想得到对应于的 int:

000000010000001000000011,根据计算器,当转换为小数时,它将是整数 66051。

我怎样才能在 Python 中从 3 个小整数变成最后一个更大的整数?

python python-3.8

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

在 Python 中,如何获得表示为 int 的浮点数的前 N ​​个十进制数字?

例如,如果我有:

12.43564
Run Code Online (Sandbox Code Playgroud)

我希望能够得到43564作为int。或者,如果浮点数有很多小数位,那么只将前 N 位小数作为整数就可以了。

例如,如果 N 是312.43564那么我会得到435

有没有办法做到这一点?

更新:我无法转换为字符串。原因是我在 Numba 编译函数中需要这个,并且由于这个开放问题,在这种情况下不可能将浮点数转换为字符串:https : //github.com/numba/numba/issues/4758

python numba

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

在 Chrome 上使用自定义滚动条样式时,下角会出现一个白色方块。如何消除这个现象呢?

我在 div 上有一个 Chrome 的自定义滚动条样式。当两个滚动条都显示时,右下角会出现一个白色方块。

<div class="scrollbox" id='a'>
    
</div>


body {
  background: black;
}

div {
  height: 100px;
  width: 200px;
  margin: 0 auto;
  overflow: auto;
  background: black;
  color: white;
}

.scrollbox:hover::-webkit-scrollbar-thumb:hover {
   background-color: #888;
}

.scrollbox:hover::-webkit-scrollbar-thumb {
  visibility : visible;
   background-color: #666;
   border-radius: 4px;
}

.scrollbox:hover::-webkit-scrollbar {
   background-color: #222;
   border-radius: 4px;
}

::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}


var a=document.getElementById('a');
for(var i=0; i<10; i++) {
    a.innerHTML+='<br>'+i + ' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
}
Run Code Online (Sandbox Code Playgroud)

这是重现代码: https: //codepen.io/nosachamos/pen/xxLOryr

看起来像这样:

在此输入图像描述

我怎样才能把它变成黑色,这样它就不会出现了?

html css google-chrome scrollbar

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

如何在 TypeScript 中定义一个数组类型,以强制执行给定类型的多个元素?

我可以为字符串类型的 N 个元素的数组创建一个类型:

type A = string[];
Run Code Online (Sandbox Code Playgroud)

以及预定义数量的元素,例如正好 2 个元素:

type A = [string, string];
Run Code Online (Sandbox Code Playgroud)

我想要的是一种接受 2 个或更多元素的类型,但不仅仅是一个或没有。

type A = ?

A = ['a', 'b'];  // OK 
A = ['a', 'b', 'c'];  // OK 
A = ['a', 'b', ... 'N'];  // OK 
A = ['a'];  // Error
A = [];  // Error
Run Code Online (Sandbox Code Playgroud)

这可能吗?

arrays typing typescript

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

为什么启动 Numba cuda 内核最多可支持 640 个线程,但在有足够的可用 GPU 内存时却无法支持 641 个线程?

我有一个 Numba cuda 内核,可以在 RTX 3090 上启动最多 640 个线程和 64 个块。

如果我尝试使用 641 个线程,则会失败并显示:

Traceback (most recent call last):
  File "/home/stark/Work/mmr6/mmr/algos/company_analysis/_analysis_gpu_backup.py", line 905, in <module>
    load()
  File "/home/stark/Work/mmr6/mmr/algos/company_analysis/_analysis_gpu_backup.py", line 803, in load_markets
    run_simulations[algo_configs.BLOCK_COUNT, algo_configs.THREAD_COUNT, stream](
  File "/home/stark/anaconda3/envs/mmr-env/lib/python3.9/site-packages/numba/cuda/compiler.py", line 821, in __call__
    return self.dispatcher.call(args, self.griddim, self.blockdim,
  File "/home/stark/anaconda3/envs/mmr-env/lib/python3.9/site-packages/numba/cuda/compiler.py", line 966, in call
    kernel.launch(args, griddim, blockdim, stream, sharedmem)
  File "/home/stark/anaconda3/envs/mmr-env/lib/python3.9/site-packages/numba/cuda/compiler.py", line 693, in launch
    driver.launch_kernel(cufunc.handle,
  File "/home/stark/anaconda3/envs/mmr-env/lib/python3.9/site-packages/numba/cuda/cudadrv/driver.py", line 2094, in launch_kernel
    driver.cuLaunchKernel(cufunc_handle,
  File "/home/stark/anaconda3/envs/mmr-env/lib/python3.9/site-packages/numba/cuda/cudadrv/driver.py", line 300, in safe_cuda_api_call
    self._check_error(fname, retcode)
  File "/home/stark/anaconda3/envs/mmr-env/lib/python3.9/site-packages/numba/cuda/cudadrv/driver.py", …
Run Code Online (Sandbox Code Playgroud)

python cuda out-of-memory numba

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

如何使用 React 17 获取 div(而不是其子项)的鼠标事件的鼠标 X 位置?

我有一个简单的片段,将onMouseMove侦听器附加到给定的 div:

<div onMouseMove={handleMouseMove}>
    <div>A</div>
    <div>B</div>
    <div>C</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我想知道鼠标指针在我附加鼠标侦听器的父 div 中的 X 位置。然而,该事件似乎只包含对子 div (as target) 和根 (as currentTarget) 的引用。

该事件的nativeEvent属性似乎也没有帮助。

我使用的是 React 17。我认为这使得事情变得更加困难,因为之前会currentTarget指向我放置侦听器的 div,但在 React 17 上,这些侦听器指向根。

如何获取我附加监听器的 div 内的坐标?

谢谢!

javascript mouseevent mousemove reactjs

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