是否可以将GORM与Spring Data JPA和Rest一起使用?

时间:2014-12-18 08:35:42

标签: grails gorm spring-boot spring-data-rest

对于#Groovy世界来说,我有点新鲜"我刚开始使用该语言来理解语法和特征。以前我在Java和Spring Boot上工作很多,而且最后一个是由Povotal支持的,就像Groovy和Grails一样,我想知道是否可以使用Groovy与Spring Boot没有问题。

嗯它有效(显然),但是当我发现GORM的语法和它周围的DSL时,我开始使用它。不幸的是,它似乎与Spring Data JPA和Rest完全吻合,因为我试图做这样的事情:

@grails.persistence.Entity
class Person {
    BigInteger id
    String firstName
    String lastName

    static mapping { table name: 'people' }
    static constraints { /* whatever */ }
}

@RepositoryRestResource(collectionResourceRel = "people", path = "/api/people")
interface PersonRepository extends JpaRepository<Person, BigInteger> { }

但是Spring Boot无法运行,因为它使用以下语句抛出异常

IllegalArgumentException: Not a managed bean Person

另一方面,如果我使用JPA注释修复该实体(通过删除Grails的注释),我根本没有任何问题。

这有什么解决方案吗?是否有可能以某种方式使用GORM与Spring Data JPA和Rest,因为GORM仍然依赖于Hibernate?

1 个答案:

答案 0 :(得分:0)

您必须在 application.properties application.yml 中定义属性 hibernate.packages ,并带有包含实体的路径。样品:

database:
  driver: org.postgresql.Driver
  url: jdbc:postgresql://localhost:5432/retail
  username: postgres
  password: postgres
hibernate:
  packages: ru.rd.core.analytic.dto.jpa
  dialect: org.hibernate.dialect.PostgreSQL94Dialect
  show_sql: true
  hbm2ddl.auto: validate #none validate create-drop update