运行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();
答案 0 :(得分:0)
上面我的评论的继续:
只需尝试使用naming-strategy
属性,它将有助于您使用相似的名称。
例如,:Spring会将实体名称从TRSN_LOOKUP
更改为tRSN_LOOKUP
。因此,请尝试在休眠中再添加一个属性。
策略有两种,您可以使用第二种策略:
1. org.hibernate.cfg.ImprovedNamingStrategy
2. org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
这可以帮助您在所有数据库字段中保持相同的名称。