- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嗨,我的 postgresql 表中有一个 json 字段,我正在使用 criteria api 来读取它的值,但我收到了上述错误消息。我已按照https://vladmihalcea.com/map-string-jpa-property-json-column-hibernate/中提到的步骤进行操作
我的代码 -
pojo
@Entity
@Table(name = "table_name", schema = "test")
@TypeDef(
name = "jsonb",
typeClass = JsonBinaryType.class
)
public class Test implements Serializable {
@Type(type = "jsonb")
@Column(name = "details", columnDefinition = "jsonb")
MyClass myclass;
}
我的类(class):
public class MyClass implements Serializable {
private String days;
private String value;
public String getDays() {
return days;
}
public void setDays(String days) {
this.days = days;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return '{' + '"' + days + '"' + ':' + value + '}';
}
}
MyDTO -
public class MyDTO {
@JsonProperty("details")
MyClass myClass;
}
标准API:
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Object[]> criteriaQuery = criteriaBuilder.createQuery(Object[].class);
Root<Test> test = criteriaQuery.from(Test.class);
criteriaQuery.where(criteriaBuilder.equal(criteriaBuilder.lower(test.get("test_id")), testId.toLowerCase()));
criteriaQuery.select(test.get("myclass"));
List<Object[]> result = entityManager.createQuery(criteriaQuery).getResultList();
错误堆栈跟踪:
Severe Error:
java.lang.IllegalArgumentException: The given string value: { "In last 7 days" : 19 } cannot be transformed to Json object
at com.vladmihalcea.hibernate.type.json.internal.JacksonUtil.fromString(JacksonUtil.java:20)
at com.vladmihalcea.hibernate.type.json.internal.JsonTypeDescriptor.fromString(JsonTypeDescriptor.java:52)
at com.vladmihalcea.hibernate.type.json.internal.JsonTypeDescriptor.wrap(JsonTypeDescriptor.java:75)
at com.vladmihalcea.hibernate.type.json.internal.AbstractJsonSqlTypeDescriptor$1.doExtract(AbstractJsonSqlTypeDescriptor.java:34)
at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:47)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:257)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:243)
at org.hibernate.loader.hql.QueryLoader.getResultRow(QueryLoader.java:457)
at org.hibernate.loader.hql.QueryLoader.getResultColumnOrRow(QueryLoader.java:440)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:775)
at org.hibernate.loader.Loader.processResultSet(Loader.java:1008)
at org.hibernate.loader.Loader.doQuery(Loader.java:964)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354)
at org.hibernate.loader.Loader.doList(Loader.java:2838)
at org.hibernate.loader.Loader.doList(Loader.java:2820)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2652)
at org.hibernate.loader.Loader.list(Loader.java:2647)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:506)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:396)
at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1404)
at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1562)
at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1530)
at org.hibernate.query.Query.getResultList(Query.java:165)
at org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getResultList(CriteriaQueryTypeQueryAdapter.java:76)
at com.test.getTestDetail(ServiceV2.java:108)
at com.test.ControllerV2.fetchDetail(ControllerV2.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
at org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:71)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
at org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilterChain.java:166)
at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:133)
at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:182)
at com.test.ControllerV2Test.testDetails(ControllerV2Test.java:153)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74)
at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
`
最佳答案
JSON 有效。 (我查了一下,很惊讶地发现键可以是任何 JSON 字符串。请参阅 http://www.json.org 。)
根据堆栈跟踪,我认为真正的问题是 Jackson 正在尝试使用
{ "In last 7 days" : 19 }
创建一个MyClass
实例。问题是 MyClass
没有与键 “In last 7 days”
对应的字段。这些字段是天
和值
。
您必须通过创建自定义对象映射器来处理这个问题。
关于java.lang.IllegalArgumentException : The given string value: { "In last 7 days" : 19 } cannot be transformed to Json object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61202241/
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我试图查看当天的车辆销量,并创建另外两个列来告诉我过去 10 天的销量和过去 20 天的销量。同一天和同一辆车可能有多个销售。我的目标是获取不同的车辆和日期并查看他们的销售数量。 N 天计数应与该行中
我需要每天 12 小时在 azure 上使用 VM,在 EOD 时关闭并在第二天早上再次启动。我习惯使用 WASABi block 进行自动缩放。 What strategy should I use
我只需要显示天/天的后缀,我该如何实现?它不起作用: java.lang.IllegalStateException: No field to apply suffix to.. privat
尝试使用 HTML 表单和 PHP 更新数据库字段时出现上述错误消息。不确定我的代码有什么问题(我知道它不安全,我只是将它用于个人用途)。我已经检查过,数据库 days 确实存在。 HTML:
谷歌搜索这个,但找不到答案。想知道这两个脚本是否有区别? +3 天: echo date( 'd.m.Y H:i:s', strtotime( '+3 day' ) ); +3 天: echo dat
我试图在某一天显示文本“A Day”,然后在第二天显示“B Day”。我可以使用偶数或奇数函数来执行此操作,然后配置 getDay 对象,但我尝试执行此操作,无论日、月或年如何。 例如,今天可能是“A
在 stack-overflow 中,有一个名为“爱好者”的徽章,通过“连续 30 天每天访问该网站”获得 如何在sql server中编写这个查询? 最佳答案 创建一个表 Id, LastVisit
$('') .attr('label', day) .attr('value', day) if(myDate.getDate(
如果我使用这个函数 pd.DatetimeIndex(dfTrain['datetime']).weekday 我得到了日期,但是我找不到任何给出日期名称的函数...所以我需要将 0 转换为星期一,将
I know I can use relativedelta to calculate difference between two dates in the calendar. However
我正在使用 DayPickerInput,我将其设置为 this (具有 2 天选择器输入的范围)。我想始终显示覆盖,我不想隐藏它。我知道 showOverlay Prop ,但它只在初始渲染期间显示
如何将类添加到 react-day-picker 的今天按钮? 从文档中似乎是可能的: http://react-day-picker.js.org/api/DayPicker#classNames
我需要将一个简单的“3.days”字符串转换为在屏幕上打印“3 days”的内容,该字符串将根据语言使用适当的语言环境来打印单词。 我想可能有一种我似乎找不到的在 Rails 上执行此操作的简单方法。
我想从 Github API GET,每天的贡献数。我正在制作一个网络应用程序,将 github 贡献的数量与我玩的 Dota 2 比赛的数量进行比较。 这张图应该能更清楚地说明事情。 http://
我想在一个月的第三天和最后一天运行一项作业。 下面的 cron 表达式正确吗? “0 0 3 3,L * * ?” 当我在 www.cronmaker.com 中尝试它时,它说这是一个无效的表达式。
我正在尝试为图像中的特定事件设置重复提醒。代码工作正常,但发生了一些正在改变创建事件的事情。请检查以下详细信息。 如果我尝试从循环中设置提醒,它会起作用,但如果重复出现,就会出现上述问题。 检查图像上
我知道新的一天(或小时/分钟,就此而言)没有事件监听器。但在我的 Chrome 扩展程序中,我需要知道新的一天何时开始,这意味着我必须使用 setInterval 函数来确定一天何时发生变化。但是,我
我有一个名为 stockins 的 table 和一个 column stock。因为我想在一周的第一天和一周的最后一天之间找到 max(stock)。 为此,我使用以下查询 select max(s
我们如何将 t.integer :missed 与 t.text :committed 集成,以便 当用户在 :level 中检查他 :missed 3 :committed 天时,他必须重新启动 :
我是一名优秀的程序员,十分优秀!