在我们的项目中,我们有数据库定义,如:
@Entity
@Table(name = "\"com.sap.s4hc.fnd.circ::PRECHECK_ITEM\"")
@Cacheable(false)
public class PrecheckItem extends AdminField implements Comparable<PrecheckItem>, Serializable
但是,由于数据库命名方案遵循SAP HANA的约定(namespace::table_name
),因此它与Spring Boot / Hibernate不能很好地兼容。生产环境中的数据库是使用JPA / Hibernate以外的方法创建的。
当前的实现在云上运行良好,但在使用H2数据库的本地开发环境中,我相信Hibernate不支持当前的命名策略。因此总是抛出Table "com.sap.s4hc.fnd.circ::PRECHECK_ITEM" not found;
。
显然,我可以准备好两套不同的实体类来缓解这个问题PrecheckItemLocal
和PrecheckItemCloud
,其中我使用配置文件分别激活它们,但如果我可以的话,那将是非常好的简单地:
@Entity
@Profile ("cloud") {@Table(name = "\"com.sap.s4hc.fnd.circ::PRECHECK_ITEM\"")}
@Cacheable(false)
public class PrecheckItem extends AdminField implements Comparable<PrecheckItem>, Serializable
这样的实现是否可用?
答案 0 :(得分:0)