我正在尝试修复 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/