如何修复org.hibernate.PropertyAccessException:春季启动应用程序中的IllegalArgumentException异常

时间:2019-01-10 07:14:02

标签: java hibernate spring-boot

运行Spring Boot应用程序时出现以下异常。 但是当我们作为纯Java执行时,相同的代码也可以正常工作。

例外:

  

在org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)       由以下原因引起:org.hibernate.PropertyAccessException:发生IllegalArgumentException调用com.sample.model.TRSN_LOOKUP.emClntId的获取方法           在org.hibernate.property.access.spi.GetterMethodImpl.get(GetterMethodImpl.java:64)           在org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:230)           在org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:4725)

这是用于在Windows中运行的spring-boot独立应用程序

 Session session = getSession();
if (!session.getTransaction().isActive() )
    session.beginTransaction();

    TRSN_LOOKUP trsnlookup = new TRSN_LOOKUP();             

        trsnlookup.setPrsnid(PrsnId);
        trsnlookup.setEmClntId(clientId);           

    session.save(trsnlookup);
    session.getTransaction().commit();

1 个答案:

答案 0 :(得分:0)

上面我的评论的继续:

只需尝试使用naming-strategy属性,它将有助于您使用相似的名称。

例如,:Spring会将实体名称从TRSN_LOOKUP更改为tRSN_LOOKUP。因此,请尝试在休眠中再添加一个属性。

策略有两种,您可以使用第二种策略:

1. org.hibernate.cfg.ImprovedNamingStrategy

2. org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

这可以帮助您在所有数据库字段中保持相同的名称。