SequelizeJS Eager Загрузка двух идентичных моделей N: M, одна возвращает данные, другая - нет

Я не думаю, что какой-либо из существующих ответов действительно ответил на вопрос, так что вот мой подход к этому.

Подходите к одному, пользуясь внутренними компонентами com.sun. *:

(класс-помощник)

import com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.validation.Schema;
import javax.xml.validation.Validator;
import javax.xml.validation.ValidatorHandler;

public class MisconfiguredDocumentBuilderFactory extends DocumentBuilderFactoryImpl {
    @Override
    public DocumentBuilder newDocumentBuilder() throws ParserConfigurationException {

        super.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage",
           "http://www.w3.org/2001/XMLSchema");
        super.setSchema(new Schema() {
            @Override
            public Validator newValidator() {
                return null;
            }

            @Override
            public ValidatorHandler newValidatorHandler() {
                return null;
            }
        });
        return super.newDocumentBuilder();
    }
}

(Фактический тестовый класс)

public class OPClassTest {
    private final static String DOC_BUILDER_PROPERTY_NAME =
        "javax.xml.parsers.DocumentBuilderFactory";

    @Test
    public void testParserConfigurationProblem() {
        System.setProperty(DOC_BUILDER_PROPERTY_NAME,
            MisconfiguredDocumentBuilderFactory.class.getCanonicalName());
        targetClass.createCompleteExportXml("somefilename", "somecontent");
    }
    @After
    public void tearDown() {
        System.clearProperty(DOC_BUILDER_PROPERTY_NAME);
    }
}

Подход 2 без использования com.sun. * namespaces

(Класс помощника)

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

public class MisconfiguredDocumentBuilderFactory2 extends DocumentBuilderFactory {
    @Override
    public DocumentBuilder newDocumentBuilder() throws ParserConfigurationException {

        throw new ParserConfigurationException(
            "this factory is not configured properly");
    }

    @Override
    public void setAttribute(String name, Object value) throws IllegalArgumentException {
        // no-op
    }

    @Override
    public Object getAttribute(String name) throws IllegalArgumentException {
        return null;
    }

    @Override
    public void setFeature(String name, boolean value) throws ParserConfigurationException {
        // no-op
    }

    @Override
    public boolean getFeature(String name) throws ParserConfigurationException {
        return false;
    }
}

(Фактический тестовый класс)

public class OPClassTest {
    private final static String DOC_BUILDER_PROPERTY_NAME =
        "javax.xml.parsers.DocumentBuilderFactory";

    @Test
    public void testParserConfigurationProblem() {
        System.setProperty(DOC_BUILDER_PROPERTY_NAME,
            MisconfiguredDocumentBuilderFactory2.class.getCanonicalName());
        targetClass.createCompleteExportXml("somefilename", "somecontent");
    }
    @After
    public void tearDown() {
        System.clearProperty(DOC_BUILDER_PROPERTY_NAME);
    }
}
1
задан Sisir 17 February 2019 в 17:54
поделиться

1 ответ

В вашем

link.js

Link.belongsToMany(models.Overlay, {
  as: 'overlays',
  through: models.LinkOverlays,
  foreignKey: 'linkId',
  targetKey: 'id',
});

Link.belongsToMany(models.Tracker, {
  as: 'trackers',
  through: models.LinkTrackers,
  foreignKey: 'trackerId', // should be linkId
  targetKey: 'id',
});

связь с LinkOverlays осуществляется через linkId, а связь с LinkTrackers - через [ 114] должно быть linkId, а также

0
ответ дан Aditya Kokil 17 February 2019 в 17:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: