使用java的postgres中的相关字段

时间:2018-01-09 22:17:06

标签: java sql postgresql

在apex中,您可以进行类似

的查询
SELECT id , name , **account__r.name** FROM schemaname.contact 

其中account__r.name正在抓取相关的帐户名称。

是否可以在带有postgres数据库的java中执行此操作?或做类似的事情。没有专门查询每个表

1 个答案:

答案 0 :(得分:1)

根据您的评论,似乎这个**封闭的字段正由SFDC专门处理。因此,您无法像在Apex代码中那样轻松访问这些数据。当您使用Apex进行开发时,它会自动为您处理许多此类底层内容。在Java和PostgreSQL中,您具有更大的灵活性(由于在较低层工作且抽象较少),但当然您将失去这些奇特的功能。这是一种权衡。如果您正在谈论的数据存储在postgresql中,那么它们肯定是表,除了通过连接多个表直接查询它们之外别无他法。我的猜测是,最简单的形式就是这样(这只是一个例子):

SELECT c.id, c.name, ac.name 
FROM contact c 
    JOIN account ac ON c.account_id = ac.id;

问题在于您的代码肯定会与您在数据库层上的SFDC中建模数据的方式相关联。因此,如果他们通过其他工具进行更改,那么您的代码就会停止工作我不熟悉这个SFDC和Apex的事情,如果数据模型设计是由你完成的,那么值得考虑这样做,否则坚持单一解决方案/框架/工具更加面向未来让它处理所有潜在的东西。

修改 考虑到您对store --> account --> contact关系的评论,那么您的查询将是这样的:

SELECT c.id, c.name, ac.name, st.city
FROM store st join account ac on ac.store_id = st.id
    JOIN contact c on c.accountid = ac.id