【问题标题】:EL1007E: Property or field 'id' cannot be found on nullEL1007E: 在 null 上找不到属性或字段“id”
【发布时间】:2019-03-08 12:48:45
【问题描述】:

我正在尝试保存我的实体,但在将类 ID 从 long 更改为 Long 后出现此错误

不知道为什么,但是hibernate不保存对象,thymeleaf看到ID字段为空

我应该把它改回长吗?

(有点奇怪)

我打开调试器看看问题出在哪里

在调用EntityManager.persist() 后,会为对象分配一个 ID,但它会引发异常,提示无法保存该对象

提前致谢

【问题讨论】:

    标签: spring hibernate spring-boot hibernate-mapping


    【解决方案1】:

    这意味着hibernate无法为记录生成id。

    确保您在 id 字段上使用 @Id 注释和 @GeneratedValue(strategy=GenerationType.AUTO) 并具有正确的 getter/setter。

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    

    【讨论】:

    • 感谢您的回答,但由于我有一些需要导入的数据,所以我使用了@SequenceGenerator(name="seq", initialValue=85000)@Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq")
    • 没问题..auto 就在那里..你可以使用任何类型的生成策略
    • 那么所有需要的注解、getter和setter都准备好了。我该怎么办?
    • 在 DAO 方法上使用 @Transactional 并检查一次。在persist后也运行em.flush()
    • 仍然没有变化,一旦持续运行,代码就会抛出 PersistenceException 并且它既没有达到刷新也没有提交
    猜你喜欢
    • 2018-08-07
    • 2019-04-27
    • 2014-05-22
    • 2021-08-22
    • 2018-03-31
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    相关资源
    最近更新 更多