java - 为什么当我放置 transient 标签时,hibernate 会出现此错误?

标签 java spring hibernate

我正在尝试修复 Kiuwan 向我指出的漏洞。

问题是其中之一是将 Transient 类型添加到 Date 类型变量,当我这样做时,会出现以下错误。

Caused by: org.hibernate.AnnotationException: com.pack.keys.MyClassKey has no persistent id property: com.pack.logic.MyClass.id

如果我不将 transient 放入日期中,则不会显示错误并且我的项目会编译。

我的类(class)

@Table(name = "tablename")
@AllArgsConstructor
@NoArgsConstructor
@Data
public class MyClass{

    @EmbeddedId
    private MyClassKey id;

    private String string1;

    //Many String more...

MyClassKey
@Embeddable
@AllArgsConstructor
@NoArgsConstructor
@Data
public class MyClassKey implements Serializable {

    private static final long serialVersionUID = 1L;

    private transient String string1;

    private transient String string2;

    private transient String string3;

    @Temporal(TemporalType.TIMESTAMP)
    private transient Date myDate;
}



谢谢。

最佳答案

因为 transient 排除了 Hibernate 中的属性。与添加@Transient注解效果相同:

https://javaee.github.io/javaee-spec/javadocs/javax/persistence/Transient.html

关于java - 为什么当我放置 transient 标签时,hibernate 会出现此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61610198/

相关文章:

java - Spark 在按键进行 group-reduce 时嵌套结构的序列化不正确

java - 是否可以扩展解决方案类?

java - 如何在 ModelMapper 的 AbstractConverter.convert() 方法中到达目标对象

java - 定时quartz任务执行时长

spring - Wiremock 为 Spring Cloud Contract stub 运行器返回错误的内容类型

spring - 如何在struts2、spring、hibernate应用程序中实现ServletContextListener?

java - 如何将列表框的值从jsp传递到servlet?

java - 修改 hibernate 文件以满足我的需要

hibernate - 如何使用 Guice 将属性注入(inject)/解析到 XML 文件中以配置 persistence.xml 文件?

JAVA 评估后缀表达式——无法抛出空或无效表达式