我的JPA实体作为枚举字段
@Table(name="zsrb_ordini_prod")
@Entity
@JsonIgnoreProperties(ignoreUnknown = true)
public class OrdineProd implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long idOrdineProd;
...
@Enumerated(EnumType.STRING)
public StOrdine stato = StOrdine.CREATO;
...
}
哪里
public enum StOrdine {
CREATO,
SCHEDULATO,
CONFERMATO,
SCARTATO
}
如果我用规范添加where条件
Specification<OrdineProd> = (root, query, qb)->
qb.equal(root.get("stato"), StOrdine.SCHEDULATO);
java.lang.IllegalArgumentException: Parameter value [SCHEDULATO] did not match expected type [imp.srb.progettazione.ordProd.StOrdine (n/a)]
at org.hibernate.query.spi.QueryParameterBindingValidator.validate(QueryParameterBindingValidator.java:54) ~[hibernate-core-5.4.9.Final.jar:5.4.9.Final]
at org.hibernate.query.spi.QueryParameterBindingValidator.validate(QueryParameterBindingValidator.java:27) ~[hibernate-core-5.4.9.Final.jar:5.4.9.Final]
...
将枚举包含到规范查询中的正确方法是什么?
尝试执行以下操作:
Specification<OrdineProd> = (root, query, qb) ->
qb.equal(root.get("stato"), StOrdine.SCHEDULATO.name);
我尝试使用@Enumerated annotation映射枚举类型,但得到以下错误: 我的工作:在postgres @entity@table(name=“test_table”)公共类TestTable{... @enumerated(enumtype.string)@column(name=“col”)private TestType col;...}
问题内容: 我们有一个带有枚举字段-的实体,我们想使用JPA注释-为它设置默认值。 但是,当我们将实体保存到数据库时,此字段的值为和。对于布尔字段- 正确的默认值()已保存。 如果改为使用:,则会在保存时得到以下异常: 我们做错了什么?为什么它仅适用于布尔值? 问题答案: 当某些SQL代码在未为emailCommunicationStatus列指定任何值的情况下插入一行时,您所做的工作很有用。在这
我正在为C 11编写一个类似于boost::promote的升级模板别名。这样做的目的是在从变量函数检索参数时避免出现警告。例如 提升模板别名提升了变量参数的默认参数提升后的类型: 1)小于int的整数提升为int 2)浮点提升为双 我的问题是,可以提升标准C枚举,但不能提升C 11枚举类(编译器不会生成警告)。我希望升级使用常规枚举,但忽略C 11枚举类。 如何区分枚举类和枚举在我的推广模板别名
问题内容: 这不是卡住我的问题,而是我正在寻找一种编写代码的整洁方法。 本质上,我正在编写一个事件驱动的应用程序。用户触发一个事件,该事件被发送到适当的对象,然后这些对象处理事件。现在,我正在编写偶数处理程序方法,并且希望使用switch语句确定如何处理事件。现在,在我研究通用结构时,事件类非常简单: 然后,在另一堂课中,我会看到类似以下内容的内容: 我会 喜欢 做的就是这样的事情(尽管我当然会坚
问题内容: 可以使用以下任一方法在JPA中定义枚举 要么 我想知道这两个定义的优缺点是什么? 我听说ORDINAL的性能比EclipseLink的STRING更好(更快)。 真的吗? 问题答案: 我总是去。 速度很少是最重要的问题-可读性和可维护性 更为 重要。 我使用它是因为手动检查数据库中的行要容易得多,但更重要的是,我可以做两件事,而无需接触数据库,无法处理: 我可以更改枚举的 顺序 我可以