Для чего мне ORM? - для упрощения процесса сохранения/извлечения объектов в бд. Я много гуглил, смотрел примеры разных библиотек, выделил в основном Sequelize и Bookshelf. Они мне в целом мне показались какими-то конструкторами запросов, вовсе не похоже что какая-либо из них призвана упростить мне жизнь и значительно сократить SQL-код в скриптах, а как раз таки наоборот, помимо SQL мне нужно изучать api этих либ.
К примеру, мне проще написать SQL руками, чем писать подобное чудо:
users.findOne({
order: [
['username', 'DESC'],
sequelize.fn('max', sequelize.col('age')),
[sequelize.fn('max', sequelize.col('age')), 'DESC'],
[sequelize.fn('otherfunction', sequelize.col('col1'), 12, 'lalala'), 'DESC'],
[User, 'name', 'DESC'],
[{model: User, as: 'Friend'}, 'name', 'DESC'],
[User, Company, 'name', 'DESC'],
]
order: 'convert(user_name using gbk)'
order: 'username DESC'
order: sequelize.literal('convert(user_name using gbk)')
})
От ORM хотелось бы не такого как дают приведенные мной либы, а что-то вроде где бы я описал в какой-нибудь xml-ке сущность, а она мне сгенерила класс с нужными методами. Даже если такого нет в природе или это не правильно, глупо (я то например не особо знаком с этим вопросом), то подтолкните на мысль, как реализовать подобное самому для своего проекта? Делают ли люди что-то подобное вообще? Пусть здесь будут строгие привила описания или какие-либо ограничения, меня больше интересует теоретический вопрос решения. Например как правильно бы описать сущность, или как проанализировать существующую базу для генерации того или иного кода.... и т.д.
Просто глядя на sequelize и подобные ей либы, хочется писать SQL а не использовать их!