小编Col*_*inD的帖子

在自定义控制器中接受Spring Data REST URI

我有一个Spring Data Rest webmvc应用程序,我想为批处理操作添加一些自定义功能.

我已经创建了一个控制器,并将其混合到uri命名空间中,但我希望它能够像自定义/search查询一样接受URI ,而不仅仅是ID.

我试过注册一个自定义<String, Long>转换器(我的实体有一个Long ID类型,但似乎被忽略.有没有办法配置我的控制器,使其采用自动实现的SDR控制器的行为?

即使有某种方法我可以调用它将自动解析一个实体的URI,这也可以正常工作(因为我可以简单地接受一个 String我的控制器中的一个)

这就是我在的地方.

@Configuration
public class CustomWebConfiguration extends WebMvcConfigurationSupport {

    //irrelevant code omitted

    @Bean
    public DomainClassConverter<?> domainClassConverter() {
        DomainClassConverter<FormattingConversionService> dc = new DomainClassConverter<FormattingConversionService>(mvcConversionService());
        return dc;
    }

    @Override
    public void addFormatters(FormatterRegistry registry) {
          registry.addConverter(String.class, Long.class, testConverter());
    }

    @Bean 
    Converter<String, Long> testConverter() {
        return new Converter<String, Long>() {

            @Override
            public Long convert(String source) {
                //this code does _not_ get run at any point
                if (source.indexOf('/') == -1) …
Run Code Online (Sandbox Code Playgroud)

java rest spring spring-data-rest

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

Spring Data Rest 2.4间歇性错误(ClassCastException)

继续使用Spring Data Rest.移动到2.4.0给了我更多我想要的行为,但现在我得到一个奇怪的间歇性异常.

关于...2/3当我重新加载或部署我的应用程序时,每个带有数据的SDR端点都会抛出500,并提供以下内容:

GET /api/departments
--------------------

HTTP Status 500 - Could not write content: org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$ProjectionResourceContentSerializer 
cannot be cast to com.fasterxml.jackson.databind.ser.impl.UnwrappingBeanSerializer 
(through reference chain: 
org.springframework.hateoas.PagedResources["_embedded"]
->java.util.UnmodifiableMap["departments"]
->java.util.ArrayList[0]
->org.springframework.data.rest.webmvc.json.ProjectionResource["content"]); 

nested exception is com.fasterxml.jackson.databind.JsonMappingException:
org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$ProjectionResourceContentSerializer 
cannot be cast to com.fasterxml.jackson.databind.ser.impl.UnwrappingBeanSerializer 

(through reference chain: 
org.springframework.hateoas.PagedResources["_embedded"]
->java.util.UnmodifiableMap["departments"]
->java.util.ArrayList[0]
->org.springframework.data.rest.webmvc.json.ProjectionResource["content"])
Run Code Online (Sandbox Code Playgroud)

(提供完整的错误报告:http://pastebin.com/xzzXkFiR)

就像我说的那样,每次重新加载/部署应用程序时都不会发生这种情况,但是如果它发生了它就完全卡住了,重新加载是修复它的唯一方法.非常奇怪的行为,想知道是否有人有任何见解.

如果我回滚到Spring Data Rest 2.3.2,则不会出现问题

感谢您的帮助,请告诉我我可以提供的其他相关信息.

  • 特别提款权:2.4.1
  • SFW:4.2.1
  • SDJPA:1.9.0
一些进一步测试

最新问题也发生(2.5.0 SNAPSHOT).

java rest spring spring-data-rest

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

通过javascript检查活动元素是否具有特定的类

我正在编写一个单字段表单,希望Enter键将表单前进到下一个输入字段。由于页面上还有另一种形式,当该表单中的输入之一是时,我只希望按Enter键可以使该表单前进activeElement

我已经在这里完成了一个极其冗长的if()声明:

document.addEventListener( 'keydown', function( ev ) {
        var keyCode = ev.keyCode || ev.which;
        var ids = [ 'this', 'that', 'there', 'thing', 'other' ];
        if ( document.getElementById( ids[0] ) === document.activeElement || document.getElementById( ids[1] ) === document.activeElement || document.getElementById( ids[2] ) === document.activeElement || document.getElementById( ids[3] ) === document.activeElement || document.getElementById( ids[4] ) === document.activeElement) {
            if( keyCode === 13 ) {
                ev.preventDefault();
                self._nextQuestion();
            }
        }
    } );
Run Code Online (Sandbox Code Playgroud)

每个输入都属于同一类:.questions。我已经尝试过类似的东西:

document.addEventListener( 'keydown', function( ev ) …
Run Code Online (Sandbox Code Playgroud)

javascript dom

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

尝试使用 GORM 连接预加载时出现恐慌

我正在尝试使用 go 创建一个简单的 REST API 作为学习项目。has many我在尝试使用GORM 的预加载功能填充关系时遇到了障碍Joins

据我所知,我已经正确设置了关系,表结构在数据库中看起来不错并且记录被插入,但是以下代码会产生错误:

panic: reflect: call of reflect.Value.Field on slice Value
Run Code Online (Sandbox Code Playgroud)

我在这里制作了一个最小的示例来显示我的问题

package main

import (
    "log"

    "gorm.io/driver/postgres"
    "gorm.io/gorm"
)

type Page struct {
    gorm.Model
    Text   string
    BookID uint
}

type Book struct {
    gorm.Model
    Pages []Page
}

func main() {
    db, err := gorm.Open(postgres.Open("postgres://postgres:password@host.docker.internal:5432/postgres"), &gorm.Config{})
    if err != nil {
        log.Fatal(err.Error())
    }
    db.AutoMigrate(&Book{})
    db.AutoMigrate(&Page{})
    db.Create(&Book{
        Pages: []Page{
            {Text: "Page One"},
        },
    })
    result := []Book{}
    // errors here
    db.Joins("Pages").Find(&result) …
Run Code Online (Sandbox Code Playgroud)

go go-gorm

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

如何在WHERE中使用SELECT进行DELETE FROM工作?

我正在看一个应用程序,我发现这个SQL:

DELETE FROM Phrase 
WHERE Modified < (SELECT Modified FROM PhraseSource WHERE Id = Phrase.PhraseId)
Run Code Online (Sandbox Code Playgroud)

SQL的目的是从Phrase中删除行,其中PhraseSource表中有更多最近的行.

现在我知道表格Phrase和PhraseSource有相同的列,而Modified包含自1970年以来的秒数,但我无法理解这是如何/为什么这样做或者它在做什么.当我看着它时,似乎在<它只是一列的左侧,在>的右侧,它将是许多行.它甚至没有任何意义吗?

这两个表是相同的,具有以下结构

Id - GUID primary key
... 
... 
...
Modified int
Run Code Online (Sandbox Code Playgroud)

...列包含文本和数字数据约十列.该PhraseSource表可能包含也可能不包含Modified列中具有更高编号的更新行以及不同的文本和数字数据.

sql sql-server

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

Math.pow(x,2)方形区域

我正在运行代码,但我似乎无法使扫描仪工作,任何人都知道如何?

public class verk34 {

public static void main(String[] args) {

 System.out.println(Math.pow(x,2));
 }
}
Run Code Online (Sandbox Code Playgroud)

事情就是在不改变代码的情况下自己插入数字.

java

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

比较打字稿中的2个字符串

x.name和imgname具有相同的类型(字符串)和相同的值“ comcardpro_capsule_model_2”。但是为什么findIndex()函数返回-1?请给我解释一下。

findPicture(imgname): number {
   return this.info.comcardList.findIndex(x => {
      x.name === imgname;          // result in console:
      console.log(imgname)         // comcardpro_capsule_model_2
      console.log(typeof imgname)  // string
      console.log(typeof x.name)   // string
      console.log(x.name);         // comcardpro_capsule_model_2
   })
  }
Run Code Online (Sandbox Code Playgroud)

预期结果将是数组中元素的索引,而不是-1。

javascript arrays

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

两个在C#中声明的相同变量

我在我的程序中找到了一个在线代码,但令我惊讶的是我发现有一个变量/函数声明了两次......

现在,如果我要向DLL发送任何值,我将发送信息到哪两个?一个用完,而第二个没用... 参见代码:

[DllImport("msman.dll", CallingConvention=CallingConvention.StdCall, CharSet=CharSet.Ansi, ExactSpelling=false)]
        public static extern bool receive(int ID, double[] Bid, double[] Ask);

        public bool receive(int ID, out double first, out double second)
        {
            bool flag;
            double[] Array1st = new double[1];
            double[] Array2nd = new double[1];
            if (Form1.receive(ID, Array1st, Array2nd))
            {
                first = Array2nd[0];
                second = Array1st[0];
                flag = true;
            }
            else
            {
                second = 0;
                first = 0;
                flag = false;
            }
            return flag;
        }
Run Code Online (Sandbox Code Playgroud)

而且,为什么可以声明两个变量..

c# out

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

检查一个数字是否可以被另一个数字整除,如果不能,则在 Javascript 中使其可整除

我想检查一个数字(7)是否可以被另一个数字(5)整除,如果这个数字可以被这个数字整除,那么我需要返回相同的数字。如果该数字不能被另一个数字整除,我需要使其可整除并返回更新后的值。

var i =7;
if (i % 5 == 0) {
 alert("divisible by 5");
} else {
    alert("divisible not by 5");
} 
Run Code Online (Sandbox Code Playgroud)

这里如果条件满足那么我需要返回相同的值。如果不满足条件,我需要添加所需的数字并使其下一个可整除。(就像 7 不能被 5 整除,所以我需要将 3 加到 7 并返回可以被 5 整除的值 10)。

是否有任何数学函数可以实现相同的功能?

javascript

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

标签 统计

java ×3

javascript ×3

rest ×2

spring ×2

spring-data-rest ×2

arrays ×1

c# ×1

dom ×1

go ×1

go-gorm ×1

out ×1

sql ×1

sql-server ×1