JPA @Formula 没有架构名称或使用实体类进行配置

我有两张桌子,A_TABLE并且B_TABLE。在A_TABLE实体类中需要具有B_TABLE列组合的公式,如下代码所示,


工作代码:


A_TABLEEntity {


    @Column("BM_NAME_I")

    private String bmdName;


    @Formula("(select b.LAST_NAME || ', '||b.FIRST_NAME||' ('||b.BM_NAME||')' 

    from BR_SCHEMA.B_TABLE  b where UPPER(b.BM_NAME)=UPPER(BM_NAME_I))")


    private string nameCombinationB;


}

需要公式中的解决方案:


1)是否可以提供任何方式来提供B_TABLEEntity类而不是 直接从实体类中提供B_TABLE列?B_table


我尝试过使用实体类抛出错误,-表或视图不存在


2)是否可以避免在公式中前面给出SCHEMA名称?B_TABLE


并且没有架构错误会抛出 - 表或视图不存在


请帮我上面的@FormulaJPA代码


大话西游666
浏览 102回答 1
1回答

慕码人2483693

@Formula 仅采用本机 sql,并且文章警告您在某些情况下与特定数据库的耦合。您应该注意 @Formula 注释采用本机 SQL 子句,这可能会影响数据库的可移植性。由于 @Formula 需要本机 SQL,因此您应始终包含架构。我认为某些数据库具有不需要显式定义的默认模式。对于一些高级操作,我可能会提供一些注释,例如 @PostLoad 并使用旧的实体管理器或直接 jdbc 加载所需的属性。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java