If your object model allows null references, i.e. missing references are used to find a row, you have to declare this explicitly in the mapping description. To do so, please set the value of the extension allow-null in the mapping extension on " true ".
In that case Signsoft intelliBO will not only create a simple join but an outer join. This will allow the retrieval of rows and their corresponding objects that have no entries in the reference collection. In the sample now the persons without addresses can be part of the query.
Sample (one-to-many mapping):
...
<field name="addr" default-fetch-group="true">
<collection element-type="com.test.Address"/>
<extension vendor-name="ssibo" key="jdbc">
<extension vendor-name="ssibo" key="mapping" value="one-tomany">
<extension vendor-name="ssibo" key="result-type" value="java.util.ArrayList"/>
<extension vendor-name="ssibo" key="allow-null" value="true"/>
<extension vendor-name="ssibo" key="reference">
<extension vendor-name="ssibo" key="src-table" value="TPERSON"/>
<extension vendor-name="ssibo" key="src-field" value="FKEY"/>
<extension vendor-name="ssibo" key="dst-table" value="TADDRESS"/>
<extension vendor-name="ssibo" key="dst-field" value="FKEY"/>
</extension>
</extension>
</extension>
</field>
...
Note: Because not every DBMS supports the outer join syntax correctly (ORACLE for example does), this option is only valid for certain databases. Keep also in mind, that the join-style has to be set in your configuration ( ibo-config.xml) in a way, the database understands it (e.g. ansi for MySQL).
Please use this feature carefully. For example, instead using relations in the default fetch you should temporarily add relations when running a query.