我有一个spring boot项目,它使用以下设置运行:
@SpringBootApplication(exclude=SecurityAutoConfiguration.class)
@ImportResource("classpath:/application-context.xml")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
我发现hibernate没有将camelCase转换为SNAKE\u CASE,而是将upper\u CASE应用到它(因为Oracle不区分大小写,所以这无关紧要):
Caused by: java.sql.SQLException: ORA-00904: "PESSOA0_"."IDPESSOA": invalid identifier
@Entity
@Table(name = "BC_PESSOA")
@NamedQuery(name = "Pessoa.findAll", query = "SELECT p FROM Pessoa p")
public class Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private Long idPessoa;
我希望hibernate隐式地将idPessoa属性映射到ID\u PESSOA列,这是默认行为。我不知道为什么这不会发生。
在
application-context.xml
,我有一段代码显示了一些bean配置(包括私有名称):
xirulei
编辑
here
我看到这篇文章:
SessionFactory sf = new Configuration()
.setNamingStrategyDelegator(ImprovedNamingStrategyDelegator.DEFAULT_INSTANCE)
.addFile("Item.hbm.xml")
.addFile("Bid.hbm.xml")
.buildSessionFactory();
知道我在用
应用-上下文.xml
要配置spring/jpa/hibernate,“添加映射之前”应该在哪里?我应该使用SpringNamingStrategy(如
old spring
)或者hibernate.ejb.u策略?除此之外,哪些值是有效的?