SilverStripe 4 - DataExtension上的has_many关系

On SS 4.0.3 I'm just trying to make a relation between a SiteConfig extension and a DataObject. The DataExtension has a has_many relation pointing to a correspondent has_one in the DataObject. On /dev/build?flush=all the CMS throw me the following exception, and I don't understand why.

To be precise; DataObject as Cassa and DataExtension as ConfigurazioneExtension:

This is the mesage:

[Emergency] Uncaught Exception: No has_one found on class 'Cassa', the has_many relation from 'SilverStripe\SiteConfig\SiteConfig' to 'Cassa' requires a has_one on 'Cassa'

Here's the code:

Cassa

/**
 * Classe Cassa
 */
class Cassa extends MetodoPagamento
{
    // Dichiarazione Proprietà
    private static $db = [
        'Iban' => 'Varchar',
        'IstitutoCredito' => 'Text'
    ];
    private static $has_one = [
        'ConfigurazioneExtension' => 'ConfigurazioneExtension'
    ]; // etc...

ConfigurazioneExtension

/**
 * Classe Configurazione - Estensione
 */
class ConfigurazioneExtension extends DataExtension
{
    // Dichiarazione Proprietà
    private static $has_many = [
        'Casse' => 'Cassa'
    ]; // etc...

Are some types of relations prohibited between DataObjects and DataExtensions?

Thanks in advance for your help.

In your Cassa model you should reference SiteConfig, not the extension for it:

use SilverStripe\SiteConfig\SiteConfig;
// ...

private static $has_one = [
    'ConfigurazioneExtension' => SiteConfig::class
]; // etc...

Extensions are applied to the configuration of the object that they extend, so you should reference the original DataObject (in this case SiteConfig) whenever you're defining relationships, looking up configuration, referencing methods etc. You don't need to reference them directly (generally).