Вопросы с тегами [orm]

0

голосов
0

ответ
5

Просмотры

Группировка QuerySet по значению столбца

У меня есть QuerySet, возвращающие задачи по идентификатору клиента из следующих моделей и хотел бы получить еще несколько фильтров, чтобы получить более уточненные данные. Модели являются лишь примером структурой, что я пытаюсь достичь: класс Client (models.Model): Имя = models.CharField (max_length = 255) Защита __str __ (Я): возвращение класса self.name офис (models.Model): имя = models.CharField (max_length = 255) ClientID = models.ForeignKey (Клиент, db_constraint = False, db_index = False, on_delete = models.DO_NOTHING) Защита __str __ (Я): возвращение класс self.name Площади (models.Model): имя = models.CharField (max_length = 255) officeid = models.ForeignKey (Office, db_constraint = False, db_index = False, on_delete = models.DO_NOTHING) Защита __str __ (Я): возвращение self.name класс Task (models.Model): имя = модели. CharField (max_length = 255) Areaid = models.ForeignKey (площадь, db_constraint = False, db_index = False, on_delete = models.DO_NOTHING) Запрос, что я использую: Task.objects.filter (areaid__officeid__clientid = '1') возвращает длинный QuerySet, что мне нужно группе Areaid. Группировка Я имею в виду, например, получение списка нескольких querysets, которые содержат только задачи для одного Areaid. Есть ли возможность достичь этого Джанго ОРМ без зацикливания через QuerySet у меня уже есть? Мне это нужно, чтобы сделать различные таблицы в Jinja2, уникальную таблицу для каждого Areaid. Группировка Я имею в виду, например, получение списка нескольких querysets, которые содержат только задачи для одного Areaid. Есть ли возможность достичь этого Джанго ОРМ без зацикливания через QuerySet у меня уже есть? Мне это нужно, чтобы сделать различные таблицы в Jinja2, уникальную таблицу для каждого Areaid. Группировка Я имею в виду, например, получение списка нескольких querysets, которые содержат только задачи для одного Areaid. Есть ли возможность достичь этого Джанго ОРМ без зацикливания через QuerySet у меня уже есть? Мне это нужно, чтобы сделать различные таблицы в Jinja2, уникальную таблицу для каждого Areaid.
tookas92
1

голосов
2

ответ
31

Просмотры

Django ORM - найти объекты, что переменный соответствует диапазону между ними модельными полей?

Я пытаюсь найти все объекты, Джанго, используя целочисленную переменную, где эта переменная является между ними двумя Джанго модельных полей. Я понимаю, используя __range (), как правило, для поиска, если поле модели между ними двумя переменными, но мне нужно это наоборот. модели: класс Расположение (models.Model): location_start = models.IntegerField () location_end = models.IntegerField () sample_id = models.ForeignKey (Образец, on_delete = models.CASCADE, db_column = 'sample_id') вид (не работает): location_query = 1276112 loc_obj = Location.objects.filter (sample_id = sample_obj, location_query__range (location_start, location_end)) сырье SQL:
trouselife
1

голосов
1

ответ
33

Просмотры

Найти модели, которые имеют только одну конкретную модель связанной

Рассмотрим следующие модели: класс продукта (models.Model): Имя = models.CharField (max_length = ...) класс Размер (models.Model): Имя = models.CharField (max_length = ...) продукция = models.ManyToManyField (продукт, через = ProductXSize, related_name = 'размеров', related_query_name = 'размер') класс ProductXSize (models.Model): продукт = models.ForeignKey (продукт, on_delete = models.CASCADE, related_name = 'productxsizes', related_query_name =» productxsize ') размер = models.ForeignKey (размер, on_delete = models.CASCADE, related_name =' productxsizes', related_query_name = 'productxsize') То, что я хотел бы достичь вдоль линий: для р в Product.objects.filter (размеры = [Size.object.get (...)]): ... То есть, найти продукты, которые имеют один размер и определенный в этом.
x-yuri
1

голосов
1

ответ
66

Просмотры

Count occurrences of values on a single column grouped by week

I'm trying to accomplish this using Django 2.0 ORM, but if you can solve this with a raw SQL query that would be very helpful too. Say for example I have a table with the column "destination", which will always be the name of a city, such as "Los Angeles", "New York", "San Francisco", or "Seattle" (but we don't know in advance how many different cities there could be). I need a SQL query (or Django ORM code) that will get me a count of all the cities for a specified date range, grouped by the record's week (based on created_at timestamp, with weeks starting on Mondays). Here is an example of the Django model (very simple): from django.db import models from django.utils import timezone class Package(models.Model): id = models.AutoField(serialize=False, primary_key=True) name = models.CharField(max_length=64) email = models.CharField(max_length=128, unique=True) phone = models.CharField(max_length=32) destination = models.CharField(max_length=64) created_at = models.DateField(db_index=True, default=timezone.now) updated_at = models.DateField(default=timezone.now) And here is an example of the desired output, structured as JSON: { "2017-06-05-2017-06-11": { "Los Angeles": 100, "New York": 50, "Copenhagen": 20 }, "2017-06-12-2017-06-18": { "Los Angeles": 10, "Toronto": 23, "Las Vegas": 21, "Carson City": 8, "Raleigh": 1 }, "2017-06-19-2017-06-25": { "Toronto": 24, "Tokyo": 75, "Kansas City": 123, "Salem": 84, "Bismarck": 22, "Boise": 77, "Las Vegas": 123 } } Note that the results can vary in size, the date ranges all start on a Monday and end on a Sunday (both inclusive), and the city names are variable and unknown. I know there are ways to build this into Python logic and do many queries, but I'm hoping we can do this in a single query. Thanks!
Florence
1

голосов
1

ответ
287

Просмотры

Объект не найден исключение на Doctrine2

Сценарий: У меня есть две сущности. Продукт & Группа продуктов. Продукт имеет много для одного отношения к Группе продуктам. Я мягкий удалить Группа продуктов. Тогда я пытаюсь вызвать getProductGroup на продукт, который имеет группу продуктов, который был мягким удален. Проблема: вместо ожидаемого нулевого результата я получаю «Сообщение: Entity не был найден.» Исключение сообщение. $ ProductGroupName = $ продукт-> getProductGroup (!) == NULL? $ Продукт-> getProductGroup () -> GetName (): '';
Shahzaib Hayat Khan
1

голосов
1

ответ
32

Просмотры

Доктрина: Многие ко многим запроса дает неполные результаты

Хорошо, у меня есть три таблица «статей», «метка» и «articles_tags», с многими ко многим отношений между двумя первыми. Теперь я пытаюсь запросить «Найди мне все статьи с тегом с ID 3» Я пытался это: $ запрос = $ эм -> createQueryBuilder () -> выберите ( «а», «т») -> из ( "Models \ статьи", "а") -> LeftJoin ( "a.tags", "т") -> где ( "t.id =: TagID") -> setParameter ( "TagID", $ _GET [ 'идентификатор']) -> GetQuery (); $ статьи = $ query-> GetResult (); Это действительно находит правильные статьи в порядке, но эти статьи теперь только показать, как имеющие один тег, даже если у них есть еще много. Я чувствую, что я сделал глупую ошибку где-то,
Khales
1

голосов
0

ответ
75

Просмотры

NULL values and data truncation due to automatic data types conversion

Мы мигрируют из FreeTDS Учение PDOSQLSrv или SQLSRV (пытаясь как на monent) и столкнулись с проблемой с усечения данных полей, которые не обновляются. Наши заявления обновления выглядят как обновление TBL набор field1 = IsNull (?, field1), field2 = IsNull (?, field2), где ID =? Мы исследовали, что это вызвано преобразованием типа данных. FreeTDS запускает запросы, как есть, так что, когда вы передаете значение NULL, NULL используется. Однако PDOSQLSrv и SQLSRV выполнения запросов с sp_prepexec хранимой процедуры, поэтому он больше не NULL, а переменная а NULL-значной. К сожалению, обе библиотеки конвертировать PHP обнуляет на символ (1) (в документации https://docs.microsoft.com/en-us/sql/connect/php/default-sql-server-data-types она называется VARCHAR ( 1), но все же это не помогает, я могу видеть полукокса (1) в Profiler), поэтому, когда поле не обновляется, и мы передаем NULL, он обрезает данные. Полный пример кода: используйте Doctrine \ DBAL \ DriverManager; include_once __DIR__. '/Vendor/autoload.php'; $ ConnectionOptions = array_merge ([ 'driverClass' => '\ Doctrine \ DBAL \ Driver \ PDOSqlsrv \ Driver'], [ 'хозяина' => '127.0.0.1', 'порт' => 1433, 'имя_бд' => ' пользователей, 'пользователь' => '', 'пароль' => '']); попробуйте {$ сопп = DriverManager :: GetConnection ($ connectionOptions); } Задвижка (\ Exception $ е) {умереть ($ e-> GetMessage ()); } $ USERID = 1; $ Ник = 'тест'; попробуйте {$ результат = $ conn-> executeUpdate ( 'UPDATE users.users SET user_nick = IsNull (: ник, user_nick) WHERE user_id =: идентификатор пользователя', [ 'ник' => $ ник, 'идентификатор пользователя' => $ USERID], [ 'ник' => \ PDO :: NULL_EMPTY_STRING, 'идентификатор пользователя' => \ PDO :: PARAM_INT]); } Задвижка (\ Exception $ е) {умереть ($ e-> GetMessage ()); } Таким образом, вопрос в том, как передать нуль правильно?
pr0head
1

голосов
0

ответ
61

Просмотры

JPA имя пакета / структура - это важно

У меня есть класс Comm в пакете под названием com.dto.testkk. У меня есть еще один класс CNTC, который находится в пакете с именем com.dto.needsWork. Каждая из этих карт к соответствующей таблице в базе данных, с Comm, содержащей Cntc_id, как это внешний ключ. Проблема я столкнулся, если я не реорганизовывать Comm в com.dto пакет, то почему-то удалить из таблицы (с помощью EntityMgr: удалить) больше не работает. Я постоянно получаю «Found Нет данных» ошибка. Создание и обновление работает отлично. Больше ничего не изменилось, кроме имени пакета. Я обновил ORM.xml файлы, а также файлы, которые содержат persistence.xml отображения этих ORM файлов соответствующим образом. Эта проблема возникает, если я реорганизовать Comm к любому пакету, который в алфавитном порядке предшествует needsWork! Если я рефакторинг к (скажем) com.dto.omg это работает, но если это com.dto. МдО я понятия не имею, почему это происходит. Любые идеи с благодарностью. UPDATE: я получил эту работу, но до сих пор не понимаю, основной вопрос. То, что я сделал следующим образом: Исходный код: частная пустота удалить () {contacts.forEach (контакт -> {JpaHelper.execResultListQuery (эм, ALL_COMMS_BY_CONTACT_QUERY, Comm.class, contact.getId ()) Foreach (эм :: удалить);. em.remove (контакт);}); em.flush (); } Приведенный выше код работает, когда они находятся в оригинальной упаковке, упомянутой (Comm в testkk и CNTC в needsWork). С изменением структуры пакета, исключение было брошено в em.flush (), с данными не найдено. Я думаю, что по каким-то причинам контакт был потопленным перед Comm и, следовательно, это происходит. Хотя я не знаю, почему. Изменение в коде, чтобы сделать его работу в настоящее время: частный аннулируются удалить () {contacts.forEach (контакт -> {JpaHelper. execResultListQuery (эм, ALL_COMMS_BY_CONTACT_QUERY, Comm.class, contact.getId ()) Foreach (эм :: удалить). em.flush (); em.remove (контакт); em.flush (); }); } Спасибо Karthik
Karthik
1

голосов
1

ответ
237

Просмотры

Как я могу использовать Sequelize и SQLite3 с NWJS 0.28.0?

версия NWJS 0.28.0 работает с NodeJS v9.4 и пакет sqlite3 совместим только до v7.x. Как я могу использовать SQLite и Sequelize с v0.28? Команда, которую я должен скомпилировать SQlite является NPM установить sqlite3 --build-из-источника --runtime = узел-WebKit --target_arch = ia32 --target = «» Но независимо от того, какую цель я ставлю я получил ошибки. Если нет возможности сделать это, что ОРМ / база данных могла бы я использовать для приложения управления библиотекой (песни, книги, шрифты, иконки и т.д.). База данных может получить огромный. Спасибо! Выход EDIT:> [email protected] установка / СМИ / Darkhawk / SRV / NodesProjects / NJS-плеер / node_modules / sqlite3> узел предварительная установка лавочка --fallback к сборке лавочки WARN установки получила ошибку, откат установки лавочка ERR! Настройка ошибок Gyp ERR! стек Ошибка: 404 ответа загрузки http://node-webkit.s3.amazonaws.com/v9.4.0/nw-headers-v9.4.0.tar.gz лавочка ERR! складывают в запросе. (/Usr/lib/node_modules/nw-gyp/lib/install.js:216:14) лавочка ERR! складывают в emitOne (events.js: 121: 20) лавочка ERR! складывают в Request.emit (events.js: 211: 7) Gyp ERR! складывают в Request.onRequestResponse (/usr/lib/node_modules/nw-gyp/node_modules/request/request.js:1068:10) Gyp ERR! складывают в emitOne (events.js: 116: 13) лавочка ERR! складывают в ClientRequest.emit (events.js: 211: 7) Gyp ERR! складывают в HTTPParser.parserOnIncomingClient (_http_client.js: 551: 21) лавочка ERR! складывают в HTTPParser.parserOnHeadersComplete (_http_common.js: 117: 23) лавочка ERR! складывают в Socket.socketOnData (_http_client.js: 440: 20) лавочка ERR! складывают в emitOne (events.js: 116: 13) лавочка ERR! Система Linux 4.10.0-38-родовая лавочка ERR! Команда "/home/jer/.nvm/versions/node/v8.9.1/bin/node" "/ USR / бен / NW-лавочка" "Настройка" " Узел --module_name = node_sqlite3 --module_path = / медиа / Darkhawk / SRV / NodesProjects / NJS-плеер / node_modules / sqlite3 / Библиотека / связывание / узел-WebKit-v9.4.0-Linux-IA32' (1) узел-пре- лавочка ERR! складывают в ChildProcess. (/Media/DarkHawk/srv/NodesProjects/NJS-Player/node_modules/sqlite3/node_modules/node-pre-gyp/lib/util/compile.js:83:29) узла предварительного лавочка ERR! складывают в emitTwo (events.js: 126: 13) узла предварительной лавочка ERR! стек на ChildProcess.emit (events.js: 214: 7) узла предварительной Gyp ERR! стек на maybeClose (внутренние / child_process.js: 925: 16) узла предварительной лавочка ERR! стек на Process.ChildProcess._handle.onexit (внутренний / child_process.js: 209: 5) узел предварительной Gyp ERR! Система Linux 4.10.0-38-общий узел-пре-лавочка ERR! Команда "/home/jer/.nvm/versions/node/v8.9.1/bin/node" «/ СМИ / Darkhawk / SRV / NodesProjects / NJS-плеер / node_modules / sqlite3 / node_modules /. NPM ERR! Ошибка при [email protected] установки скрипта. NPM ERR! Вероятно, это не проблема с НПМ. Существует вероятность дополнительный выход каротаж выше.
Jeremy Dicaire
1

голосов
0

ответ
120

Просмотры

Джанго - переопределить базовый класс модели поля на прибудете

Я использую Django1.6 у меня есть абстрактный класс А и класс В: класс A (модель): Att = CharField () Класс Meta: абстрактный = True класс B (A): пройти я хочу, чтобы переопределить поведение 'АТТ' (без трогательного класса а): поэтому при использовании:. B = B (ATT = «а») сохранить () b.att (выход «а»), но я хочу, чтобы переопределить вывод: так: b.att (выход это нечто иное, как «a_thanks») класса в (А): @propert защиту Att (Я): возвращение self._att + «_thanks», как я могу это сделать? я знаю, что это возможно из Джанго 1.10
Eyal Ch
1

голосов
0

ответ
68

Просмотры

Многие () отношения с той же модели в перевождь-ОРМ

Что мне нужно моделировать член есть список последователей и следующие.
1

голосов
0

ответ
287

Просмотры

Создание данных с несколькими вложенными атрибутами в рельсах

Я пытаюсь создать элемент с вложенными атрибутами, это мои таблицы: Пункт has_many: items_modifier_groups, зависимый:: уничтожить HAS_MANY: items_modifier_group_items, зависимый:: уничтожить attr_accessible: items_modifier_groups_attributes,: items_modifier_group_items_attributes accepts_nested_attributes_for: items_modifier_groups,: items_modifier_group_items ModifierGroup attr_accessible: tag_id ItemsModifierGroup belongs_to: modifier_group belongs_to: пункт has_many: items_modifier_group_items, зависимый:: уничтожить attr_accessible: item_id,: modifier_group_id,: modifier_group_attributes,: items_modifier_group_items_attributes accepts_nested_attributes_for: modifier_group,: items_modifier_group_items ItemsModifierGroupItem - Таблица 4 belongs_to: items_modifier_group belongs_to: пункт attr_accessible: items_modifier_group_id,: item_id,:pre_select Params создать из консоли: с = Item.new ( "имя" => "test1", "items_modifier_groups_attributes" => { "0" => { "items_modifier_group_items_attributes" => { "0" => { "pre_select" = > "истина"}}, "min_item" => "1", "modifier_group_attributes" => { "tag_id" => "5"}}}) c.save INSERT INTO "items_modifier_group_items" ( "created_at", "item_id" , "items_modifier_group_id", "pre_select", "sequence_no", "updated_at") значения ($ 1, $ 2, $ 3, $ 4, $ 5, $ 6) ВОЗВРАТ "ID" [[ "created_at", ср, 28 февраля 2018 15:44: 27 GST +04: 00], [»item_id», ноль], [ "items_modifier_group_id", 35], [ "pre_select", правда], [ "sequence_no", 0], [ "updated_at", ср, 28 февраля 2018 15:44:27 GST +04: 00 ] Когда он создает элемент из приставок, item_id равна нуль в ItemsModifierGroupItem таблице, однако, item_id создается в ItemsModifierGroup таблице Я пропускаю что-нибудь в Params.?
django
1

голосов
0

ответ
65

Просмотры

ManyToMany связь в Symfony

У меня есть две сущности: категории и продукты, один продукт может относиться к различным категориям. Я сделал ManyToMany отношения в доктрине, и это то, что я получаю (код я добавлю ниже). Существует таблица элементов (идентификатор, название, цена и т.д.), таблицу с категориями (ID, имя, child_id) и таблицу, которая связывает их (id_item, id_categories). Мне нужно отправить запрашивающей как JSon массив типа: { «имя»: «ITEM1», «цена»: 250, «цвет»: «красный», «размер»: 23 «Вес»: 45, там # и точка, в которой категории принадлежат} Так что я не понимаю, как это реализовать. Если вы делаете это по отдельности, вы можете просто перетасовать идентификатор продукта и идентификатор категории в таблицу связующей, и все будет работать и отображаться правильно, вот пример ответа (показать все товары): { "ID": 1, "имя": "велосипед", "цена": 200, "цвет": "красный", "размер": 150, "вес": 15, "категория": [{ "ID" : 1, "имя": "родитель"}, { "ID": 2, "имя": "ребенка к 1", "родитель": { "ID": 1, "имя": "родитель"}}] } Скажите, пожалуйста, как я могу это сделать? так что меньше проблемы были ... Вот мои Сущности: Item Entity: класс Item {частного $ ID; частный $ имя; частный $ цена; частный $ цвет; частный $ размер; частный $ вес; защищенный $ категории; // добытчики и сеттера} Категория Entity: класс Категория {частный $ ID; частный $ имя; частный $ родительским; частные $ детей; защищенные $ пункты; общественная функция __construct () {$ this-> дети = новый ArrayCollection (); $ This-> товар = новый ArrayCollection (); } // методы получения и установки} Item.orm.yml: AppBundle \ Entity \ Состояние: Тип: объект manyToMany: категория: targetEntity: AppBundle \ Entity \ Категория каскад: [ 'сохраняются'] inversedBy: пункты joinTable: Имя: item_category joinColumns: item_id: referencedColumnName: ID inverseJoinColumns: category_id: referencedColumnName: таблица ID: [{ "ID": 1}, { "ID": 3}]} Но как сделать сеттер для записи категории, которые ArrayCollection? Мой контроллер: функция postItemAction общественности (Request $ запрос) {$ сериализатору = $ this-> Get ( 'jms_serializer'); $ Содержание = $ request-> getContent (); $ Пункт = $ serializer-> десериализации ($ содержание, 'AppBundle \ Entity \ Item', 'JSON'); $ Эм = $ this-> getDoctrine () -> getManager (); $ Em-> сохраняются ($ пункт); $ Em-> заподлицо (); вернуть новый вид ($ пункт, ответ :: HTTP_OK); } jms_serializer '); $ Содержание = $ request-> getContent (); $ Пункт = $ serializer-> десериализации ($ содержание, 'AppBundle \ Entity \ Item', 'JSON'); $ Эм = $ this-> getDoctrine () -> getManager (); $ Em-> сохраняются ($ пункт); $ Em-> заподлицо (); вернуть новый вид ($ пункт, ответ :: HTTP_OK); } jms_serializer '); $ Содержание = $ request-> getContent (); $ Пункт = $ serializer-> десериализации ($ содержание, 'AppBundle \ Entity \ Item', 'JSON'); $ Эм = $ this-> getDoctrine () -> getManager (); $ Em-> сохраняются ($ пункт); $ Em-> заподлицо (); вернуть новый вид ($ пункт, ответ :: HTTP_OK); }
Dialkord
1

голосов
1

ответ
103

Просмотры

Бизнес-модель с APIPlateform

Мы используем Symfony 4 + Doctrine + APIPlateform поставить HTTP API. APIPlateform предоставляет Doctrine объекты как ресурсы API Rest (с помощью аннотаций внутри класса сущностей), который (я нашел) нет хорошей практики, так как бизнес-модель (выставляемых API) должны быть такими же, чем модель Symfony доктрины. В результате, он более похож на основной CRUD, чем реальное применение. Могу ли я неправильно об этом или можно создать своего рода доктрины виртуальных сущностей, чтобы использовать такие инструменты, как APIPlatform (или даже форме Symfony)?
Thomas Decaux
1

голосов
0

ответ
19

Просмотры

Doctrine 2, как сосчитать пользователей, которые к оформить участие событие? (Так COUNT на GROUP BY)

У меня есть 3 таблицы в моей БД: пользователь (_id, имя) событие (_id, имя, ...) events_partecipants (user_id, event_id) У меня есть две Doctrine сущности, которая отображает эти таблицы и их отношения, и все работает (например, я. м в состоянии получить все partecipants для конкретного события). Теперь я хочу, чтобы получить количество событий, каждый пользователь присоединился к. Использование чистого SQL запрос будет: SELECT user_id, COUNT (*) в качестве счетчика FROM events_partecipants GROUP BY user_id ORDER BY счета DESC Как результат, я хочу, чтобы получить также имя каждого пользователя, так что я могу отправить обратно в JSON информацию о каждый пользователь с именем, а не ID. Если я хочу использовать доктрину, как это может быть достигнуто? Я не могу найти умный способ сделать это.
Noisemaker
1

голосов
0

ответ
26

Просмотры

Дата не отображается в товару (symfony3, учение)

Мой контроллер: класс LoggingController расширяет контроллер {функция getLogAction общественности () {$ результат = $ this-> getDoctrine () -> getRepository (ChangeLog :: класс) -> FindAll (); если ($ результат === NULL) {вернуть новый вид ( "Вход не найден", ответ :: HTTP_NOT_FOUND); } Вернуть новый вид ($ результат, ответ :: HTTP_OK); }} Мое учение orm.yml: AppBundle \ Entity \ ChangeLog: Тип: сущность таблицы: нулевые repositoryClass: AppBundle \ Repository \ ChangeLogRepository: ID: Тип: целое ID: истинный генератор: стратегия: AUTO поля: дата: Тип: Дата и время # ... и другие Когда я пытаюсь показать мои записи из таблицы, я получаю это дата (дата пуста): Но в моей таблице в БД все в норме: Что случилось? Все еще данные отображаются нормально ... Я использую FosRestBundle для отображения данных в формате JSON.
Dialkord
1

голосов
2

ответ
152

Просмотры

Правильный PHP typehint для колонного типа доктрины «десятичного»

Я использую эту колонку в одном из моих образований: / ** * @var поплавок * @ORM \ Column (тип = "десятичном", точность = 20, масштаб = 2) * / значение общественного $; Согласно документации Doctrine, десятичный тип возвращается в виде строки в PHP, но я использую его в качестве поплавка. Должен ли я typehint это с @var поплавком тогда, или @var строка правильно? Во всяком случае, если я использую эту переменную для арифметических calcualtions, например. $ Object-> значение + $ otherobject-> значения я рисковал получить нежелательное поведение (например, только добавляя целые части)?
Olli D-Metz
1

голосов
2

ответ
146

Просмотры

Hibernate + Sybase IQ

Я закончил свой гибернации проект на сервере SQL, и теперь мы должны перейти от SQL сервера для Sybase IQ. У меня есть все мои запросы, написанные в HQL и никакой логики в SQL Server. Есть ли зимовать поддерживает Sybase Iq? Так что я не должен ничего менять в своем приложении, кроме конфигурации Sybase IQ. Его немного приоритете так, пожалуйста, быстро реагировать в случае, если вы знаете. У искал много, но не так много ответа.
Satyam Prateek
1

голосов
1

ответ
308

Просмотры

Django 2.0 - iexact переводит НРАВИТСЯ и не ILIKE

У меня есть модель, как это: класс статья (models.Model): название = models.CharField (max_length = 200) содержание = models.TextField () Класс Meta: db_table = 'статья' и я пишу запрос: статьи = ст. objects.filter (title__iexact = 'привет мир') печать (articles.query) выход: SELECT ... FROM `article` WHERE` article`.`title` LIKE привет мир Вы можете увидеть iexact переводится на LIKE. Но Джанго документация говорит, что будет переводить ILIKE, кто виноват? Кстати: мой MySQL сортировки utf8_bin. MySQL обслуживается на убунту. Код работает на окнах.
NunchakusHuang
1

голосов
0

ответ
114

Просмотры

Почему Джанго запросы к горячему резервированию идет медленнее, чем запросы освоить?

У меня есть два сервера, работающие Postgres, установка, чтобы быть хозяином / репликатор с помощью горячего резерва. Когда я делаю запросы с помощью Джанго на главном сервере запросы займет примерно половину времени, что одни и те же запросы на дублированном взятии сервера. Сервера идентичны за исключением того, один работают базу данных для чтения / записи подачи WAL файлов, а другие работают только для чтения базы данных тиражирования из файлов WAL. Если я делаю запросы на дублированной сервере освоить запросы решить в два раза быстрее, чем они делают, если я делаю запросы непосредственно в локальную базу данных. Почему это? Я использую маршрутизатор базы данных, как описан в документации Джанго: класс DatabaseRouter: Защита db_for_read (самость, модель, ** подсказки): «» «Считывает идти на локальный хост.„“» Возвращение „по умолчанию“
B.Adler
1

голосов
0

ответ
35

Просмотры

Doctrine Entity 3 уровня глубокие отношения упорствуют к внучатам от родительской вставки

У меня есть уникальная ситуация, когда у нас есть доктрина (2,6) отношения, которые 3 уровня в глубину. Отношения свободно определяется следующим образом: Много-к-одному пользователя (Parent) [user_id] Адрес (Child) [user_id, CITY_ID] Город (Grand-Child) [CITY_ID] Если я создаю пользователя (Parent), адрес (ребенок) создается одновременно - это прекрасно. Однако всегда есть попытка создать новую запись в Сити (Grand-Child) объект / таблице сохраняется в базу данных. Я только когда-либо заинтересован в Городской Сущности во время поиска / кокетливого / Viewing, с ним соединен (если это возможно) на основе CITY_ID Родителя [Адрес]. Изменения в Городском данных управляются извне,
wingman
1

голосов
2

ответ
152

Просмотры

Doctrine 2 использования столбец таблицы, как в базе данных, а не верблюжий

как дела? Так, недавно я решил перейти от доктрины 1.2 Учение 2.5 и сейчас я обновляю все мои запросы и все необходимые. В Доктрине 1.2 У меня были все модели, сгенерированные непосредственно из базы данных в PHP скрипт, и я решил сделать то же самое для доктрины 2.5. Я использую этот скрипт (https://gist.github.com/tawfekov/4079388) для создания объектов. Проблема заключается в том, что порождает все имена столбцов в верблюжьем. Мне нужны их таким же образом, что они находятся в базе данных. Вот то, что база данных выглядит следующим образом: База данных А вот что сущность выглядит (часть его, в любом случае): Entity Кто-нибудь знает, как я могу это исправить? Мне нужно имена столбцов, сгенерированные этот сценарий в соответствии с базой данных, а не в верблюжьем. [EDIT] Это не дубликат двух других вопросов. Первый вопрос, который выглядел многообещающим, но принятый ответ не работает для меня. Я попробовал несколько стратегий именования, и ни один из них не работает для меня. И второй вопрос, это полная противоположность моего.
Phelps
1

голосов
0

ответ
58

Просмотры

Джанго QuerySet, который всегда возвращает итератор ()

Можно ли определить пользовательские QuerySet, что всегда будет возвращать выход .iterator (), когда он повторяется, сохраняя при этом все остальные функции QuerySet? Обертывание существующего QuerySet будет работать тоже. В настоящее время единственным решения я придумал этот ужасный класс обертки: класс IteratorQuerySet: Защита __init __ (я, Qs): self._qs = QS Защита __iter __ (Я): возвращение self._qs.iterator () Защита __getitem __ (я, * Args, ** kwargs): возвращение self._qs .__ GetItem __ (* Args, ** kwargs) Защита __getattr __ (я, атр): возвращение GetAttr (self._qs, атр) недостатком является то, что это на самом деле не QuerySet , а просто передает все атрибуты и GetItem вызовы СМО. Какие разные углы я мог бы попробовать?
lue3Seba
1

голосов
0

ответ
42

Просмотры

Как Ibatis данные картографа вычисляет, завершена ли команда SQL

Я хотел бы знать, как Ibatis принимать уведомление от соединения SQL, что задача завершена. Для например Существует одна команда вставки выполняется через C # объект данных, так как Ibatis пришел узнать, что все данные вставляются.
Abhishek
1

голосов
0

ответ
43

Просмотры

Комплекс аннотация запроса для каждого отдельного

В списке PurchaseOrder Я хотел бы, чтобы отобразить общее количество сгруппированных по каждой отдельной единицы. Я использую следующие модели и функции, но есть база данных хит каждый раз, когда get_quantity_by_unit () называется - для каждого объекта в списке. Класс PurchaseOrder (models.Model): линии = models.ManyToManyField (Product, пустой = True, через = 'PurchaseOrderLine' related_name = '% (класс) s_line') Защиту get_quantity_by_unit (Я): возвращение PurchaseOrderLine.objects.filter (purchase_order = Я) .values ​​( 'unit__abbreviation') аннотирования (сумма = сумма ( 'количество'.)) класс PurchaseOrderLine (models.Model): purchase_order = models.ForeignKey (PurchaseOrder) продукт = models.ForeignKey (продукт) = количество models.DecimalField () единица = модель. ForeignKey (Unit) Может ли это быть достигнуто с Джанго ОРМ? Далее получает общее количество, но не для каждого отдельного блока: запрос = PurchaseOrder.objects.filter (date__gte = CUTOFF_DATE) .annotate (всего = Sum ( 'purchaseorderline_order__quantity')) Следующий бросает ValueError: Prefetch querysets не может использовать значения (). QuerySet = PurchaseOrderLine.objects.values ​​( 'блок'). order_by ( 'блок'). аннотирования (общая сумма = ( 'количество')) запроса = PurchaseOrder.objects.filter (date__gte = CUTOFF_DATE) .prefetch_related (Предвыборка ( 'purchaseorderline_order », QuerySet = QuerySet, to_attr = 'итоговые')) )) Следующий бросает ValueError: Prefetch querysets не может использовать значение (). QuerySet = PurchaseOrderLine.objects.values ​​( 'блок'). order_by ( 'блок'). аннотирования (общая сумма = ( 'количество')) запроса = PurchaseOrder.objects.filter (date__gte = CUTOFF_DATE) .prefetch_related (Предвыборка ( 'purchaseorderline_order », QuerySet = QuerySet, to_attr = 'итоговые')) )) Следующий бросает ValueError: Prefetch querysets не может использовать значение (). QuerySet = PurchaseOrderLine.objects.values ​​( 'блок'). order_by ( 'блок'). аннотирования (общая сумма = ( 'количество')) запроса = PurchaseOrder.objects.filter (date__gte = CUTOFF_DATE) .prefetch_related (Предвыборка ( 'purchaseorderline_order », QuerySet = QuerySet, to_attr = 'итоговые'))
bdoubleu
1

голосов
0

ответ
31

Просмотры

Doctrine with always live data from database / clear is destroying everything / Ratchet chat

Я разрабатываю чат с использованием PHP храпового WebSockets. Проблема заключается в том, что я использую Doctrine есть для слоя базы данных - и сценарий не перезагружается все время как для обычных веб-запросов. Поэтому я решил использовать $ entityManager-> ясно () для каждого подключения. (OnMessage) Это теперь работает все время, за исключением того, теперь, когда я хочу, чтобы сохраняться новые объекты с нормально новыми пользователями. Пример использования: OnMessage: / ** @var \ Doctrine \ Bundle \ DoctrineBundle \ Registry $ доктриной * / $ доктриной = $ this-> container-> Get ( 'учение'); $ Doctrine-> getManager () -> ясно (); $ Пользователя = $ this-> container-> прибудет (UserRepository :: класс) -> находка (1); // проверяет включен и т.д. работает, потому что пользователь всегда свежий из базы данных, // поэтому, если отключить его в то время как скрипт работает он будет обнаружен Упорство объекта с данными загрузки свежим из базы данных. $ Пользователя = $ this-> container-> прибудете (UserRepository :: класс) -> находка ($ subscriber-> session-> Get ( 'user_id')); если ($ пользователь) {/ ** @var \ Doctrine \ Bundle \ DoctrineBundle \ Registry $ доктрина * / $ доктрины = $ this-> container-> Get ( 'учение'); $ Doctrine-> getManager () -> Refresh ($ пользователю); эхо «ДО ERROR». PHP_EOL; $ ChatMessageStatus = новый ChatMessageStatus (); $ ChatMessageStatus-> SETUSER ($ пользователю); $ ChatMessageStatus-> setChatMessage ($ сообщение); $ This-> entityManager-> сохраняются ($ chatMessageStatus); эхо «ПОСЛЕ ОШИБОК». PHP_EOL; } Ошибка: Новый объект был найден через отношения «App \ Entity \ ChatMessageStatus # пользователя», который не был настроен на каскаде сохраняются операции для лица: Патриком. Для того, чтобы решить эту проблему: Либо явно вызвать EntityManager # сохраняются () на этой неизвестной сущности или настроить каскад упорствовать эту ассоциацию в отображении например @ManyToOne (.., каскад = { «упорствовать»}). Я использую Symfony4 с Doctrine ORM 2.5. Спасибо заранее за любые идеи.
Patrick
1

голосов
0

ответ
42

Просмотры

Есть ли способ, чтобы добавить два разных цвета на маршруте (пути), если у меня есть 3 WAYPOINTS? листовка маршрутизации машины

Если я называю сегмент как линия / маршрут между двумя точками пути. и предположим, если у меня есть три точек пути, то я могу иметь различный цвет в каждом сегменте? Если да, то как я могу добиться этого? Спасибо
prashanth naik
1

голосов
0

ответ
71

Просмотры

Django ORM исключить не удается

У меня есть некоторые проблемы с моим запросом - с фильтром () это нормально, но с исключением () не работает. Мои модели: класс Dictionary (DateTimeModel): base_word = models.ForeignKey (BaseDictionary, related_name = _ ( 'dict_words')) слово = models.CharField (max_length = 64) версия = models.ForeignKey (Version) класс FrequencyData (DateTimeModel): слово = models.ForeignKey (словарь, related_name = _ ( 'frequency_data')) = кол models.BigIntegerField (нуль = True, пустой = True) Источник = models.ForeignKey (Источник, related_name = _ ( 'frequency_data'), нуль = Правда, пустой = True) пользователь = models.ForeignKey (settings.AUTH_USER_MODEL, related_name = _ ( 'frequency_data')) user_ip_address = models.GenericIPAddressField (нуль = True, пусто = True) date_of_checking = models.DateTimeField (нуль = True, пусто = True) is_checked = модели. BooleanField (по умолчанию = False) И я хочу, чтобы получить какое-то слово из словаря, где частоты которых не от какого-либо пользователя Dictionary.objects.prefetch_related ( 'frequency_data') фильтра (frequency_data__user = 1). [: 100] - OK Dictionary.objects. . prefetch_related ( 'frequency_data') исключить (frequency_data__user = 1) [100] - процессор до 100% и загрузку Без prefetch_related то же самое. Что с исключить? ED словарь дб Tabel - 120k строк FrequencyData - 160k строки EDIT2 PSQL (9.6.6) 100] - процессор до 100% и загрузки Без prefetch_related то же самое. Что с исключить? ED словарь дб Tabel - 120k строк FrequencyData - 160k строки EDIT2 PSQL (9.6.6) 100] - процессор до 100% и загрузки Без prefetch_related то же самое. Что с исключить? ED словарь дб Tabel - 120k строк FrequencyData - 160k строки EDIT2 PSQL (9.6.6)
Mike Br
1

голосов
1

ответ
35

Просмотры

How to save a clone of an entity as an update with Doctrine2

Я не люблю использовать сеттер, как я не люблю мутировать объекты, как только они инстанцированы, поэтому я предпочитаю использовать withFoo (Foo $ Foo) стиль, который возвращает клон, вместо этого: функции withFoo общественности (Foo Foo $ ): само {$ клон = клон $ это; $ Clone-> Foo = $ Foo; вернуть $ клон; } Это послужило мне очень хорошо в течение длительного времени, но теперь я должен работать с Doctrine2 и он не работает: $ Foo = $ fooRepository-> getByBar ($ бар); $ Foo = $ foo-> withBaz ($ БАЗ); $ EMI-> заподлицо (); Это приводит к ошибке в моих журналах что-то вроде этого: app.ERROR: произошло исключение при выполнении «INSERT INTO обув (идентификатор, бар, БАЗ) ЗНАЧЕНИЯ (,??)» С Params [ "51f74f6e-8e20-42ec -ba21-ac3ae62658ef», "Бар", "Баз"]: SQLSTATE [23000]: Integrity нарушение ограничения: 1062 Дублированный запись ' 51f74f6e-8e20-42ec-ba21-ac3ae62658ef»для ключа 'PRIMARY' [] [] Если я изменить свой код к следующему, он будет обновляться без проблем: функция withFoo общественности (Foo $ Foo): само {$ this-> Foo = $ Foo; вернуть $ это; } Пока я был вынужден прибегнуть к использованию нормального сеттера, но мне это не нравится. Есть ли способ сделать это? Я хочу сказать ему, чтобы сохранить обновление, но использовать идентификатор, чтобы определить, какую запись нужно обновить. Рода REPLACE INTO в MySQL, например. Любая помощь? но использовать идентификатор, чтобы определить, какую запись нужно обновить. Рода REPLACE INTO в MySQL, например. Любая помощь? но использовать идентификатор, чтобы определить, какую запись нужно обновить. Рода REPLACE INTO в MySQL, например. Любая помощь?
Engineer81
1

голосов
1

ответ
63

Просмотры

Redux-ORM связь ограничения на рассылку

Пытаясь понять Redux-ОРМ. Читал на и https://github.com/tommikaikkonen/redux-orm и http://blog.isquaredsoftware.com/2016/10/practical-redux-part-1-redux-orm-basics/ У меня есть два класса Автор и книги Теперь, когда я направить CREATE_AUTHOR действие детали создания автор так же я послать еще одно действие с типом CREATE_BOOK добавляющих деталей книги. Теперь, как я связать Автор и связанную с ним книгу? или если я создаю книгу первый, как я добавить его автор?
user581157
1

голосов
0

ответ
35

Просмотры

Что такое Учение основано на при выборе INSERT или UPDATE?

В моем приложении, в очень точном случае, когда я пытаюсь обновить объект с доктриной, это не удалось, потому что «Ключ уже существует». В самом деле, доктрина пытается INSERT INTO вместо UPDATE, и я не понимаю, почему. Для того, чтобы понять, почему доктрина не выбирает правильный путь, чтобы сделать, я хочу знать, что доктрина основана на при выборе INSERT INTO или UPDATE? Это, кажется, не может быть основана на ID, так на что? Может быть, это поможет найти ответ: Я использую PostgreSQL
Victor Castro
1

голосов
1

ответ
365

Просмотры

Учение QueryBuilder выбрать один-ко-многим

У меня есть 2 сущностей с отношением один-ко-многим. Мне нужно, чтобы выбрать имя из обоих объект 1 и объект 2 $ дь -> выберите ([ 'f.name1', 'c.name2']) -> из ( 'BundleOne: EntityOne', 'C') -> innerJoin ( 'c.EntityTwo', 'е'); вернуть $ qb-> GetQuery () -> getArrayResult (); С учетом указанных выше запроса, я получаю следующие результаты: 1 => массив: 2 [ "NAME1" => "XYZ" "name2" => "n1"] 2 => Массив: 2 [ "имя1" => "XYZ" "имя2" => "п2"] 3 => массив: 2 [ "имя1" => "ABC" "имя2" => "n3"] 4 => массив: 2 [ "имя1" => "ABC" «имя2 "=> "n4"] Как вы можете заметить,
jo12345678
1

голосов
0

ответ
30

Просмотры

Symfony3 - Переключатель DB Connection на основе Поддомен

Мне нужно, чтобы быть в состоянии соответствовать менеджер соединения / лиц с поддоменом: one.domain.com => Если использовать соединение и менеджер сущности один two.domain.com => Если использовать соединение и сущность менеджера два Но я не знаете, как этого достичь, что бы правильный способ приближения к нему в Symfony3.4? Моя конфигурация Doctrine доктрина: DBAL: default_connection: одно соединение: один: водитель: PDO_MySQL и т.д. ... два: водитель: PDO_MySQL и т.д ... ОРМ: auto_generate_proxy_classes: '% kernel.debug%' default_entity_manager: один entity_managers: один: подключение: один отображения: UserBundle: ~ AnotherBundle:
Odyss3us
1

голосов
1

ответ
45

Просмотры

How to add a sortable column from the admin log in Django

В админке Django Мне нужно отобразить, когда объект последнего изменения другого пользователя. Поэтому я хочу использовать встроенный в журнал администратора Django. Я пришел с этим решением: класс MyModel (models.Model): ... @property Защиты admin_last_modified (сам): от django.contrib.admin.models импорта LogEntry из django.contrib.contenttypes.models импорта ContentType попробовать: logentry = формат возврата '' возвращение '{} по {}': LogEntry.objects.filter (object_id = self.pk, content_type_id = ContentType.objects.get_for_model (само .__ class__)) .order_by ( 'action_time') [0], за исключением. (logentry.action_time, logentry.user) и класс администратора: @ admin.register (MyModel) класс MyAdmin (admin.ModelAdmin): list_display = (..., ' admin_last_modified») Недостаток, который представляет собой шоу-стоппер для меня является то, что столбец не сортируется. Для этого, от того, что я собрал, я должен был бы переформулировать собственность как своего рода аннотацию. Но я пытался и не пришел с идеей, как сделать это: класс MyAdmin (admin.ModelAdmin): Защита get_queryset (Я):. QuerySet = супер () get_queryset (запрос) QuerySet = queryset.annotate (admin_last_modified = # ???) возвращение QuerySet Я теперь ищу то, что заменить знаки вопроса с. Как я могу написать аннотацию, который извлекает одну строку информации от другого в основном, не связанной таблицы? d нужно заново сформулировать свойство как своего рода аннотацию. Но я пытался и не пришел с идеей, как сделать это: класс MyAdmin (admin.ModelAdmin): Защита get_queryset (Я):. QuerySet = супер () get_queryset (запрос) QuerySet = queryset.annotate (admin_last_modified = # ???) возвращение QuerySet Я теперь ищу то, что заменить знаки вопроса с. Как я могу написать аннотацию, который извлекает одну строку информации от другого в основном, не связанной таблицы? d нужно заново сформулировать свойство как своего рода аннотацию. Но я пытался и не пришел с идеей, как сделать это: класс MyAdmin (admin.ModelAdmin): Защита get_queryset (Я):. QuerySet = супер () get_queryset (запрос) QuerySet = queryset.annotate (admin_last_modified = # ???) возвращение QuerySet Я теперь ищу то, что заменить знаки вопроса с. Как я могу написать аннотацию, который извлекает одну строку информации от другого в основном, не связанной таблицы? аннотирования (admin_last_modified = # ???) возвращение QuerySet Я сейчас в поисках того, что заменить знаки вопроса с. Как я могу написать аннотацию, который извлекает одну строку информации от другого в основном, не связанной таблицы? аннотирования (admin_last_modified = # ???) возвращение QuerySet Я сейчас в поисках того, что заменить знаки вопроса с. Как я могу написать аннотацию, который извлекает одну строку информации от другого в основном, не связанной таблицы?
Boldewyn
1

голосов
0

ответ
44

Просмотры

Ошибка с использованием углерода в запросе

У меня есть проблема с использованием, если условия в MySQL Я пытаюсь следующее: У меня есть две модели: пабы и графики (где хранить статически пабы графиков). Они «вновь связаны друг друг с другом следующим образом: Pub: / ** * @return \ Осветите \ Database \ Красноречивые \ Отношения \ HasMany * / общественная функция pubSchedules () {вернуть $ this-> hasMany (Расписание :: класс); } График работы: / ** * @return \ Осветите \ Database \ Красноречивые \ Отношения \ BelongsTo * / функция паб общественности () {вернуть $ this-> belongsTo (Pub :: класс); } Расписания таблица содержит следующие поля: идентификатор | pub_id | week_day | opening_time | CLOSING_TIME Я разрабатываю фильтр, который показывает только открытые пабы в текущий момент. Первая функция, которую я сделал отлично работает: общественная статическая функция isPubCurrentlyOpen ($ пабов) {$ pubs-> whereHas ( 'pubSchedules', функция ($ пабах) {$ pubs-> где ( 'week_day', углеродистая :: сейчас () -> День недели) -> whereRaw ( "'" Углерод :: сейчас (. 'Europe / Madrid') -> формат ( " Н: я: s ".) "»МЕЖДУ opening_time И CLOSING_TIME"); }); } Возвращает запрос, который может присоединиться с другими фильтрами. Проблема заключается в том, когда у меня есть паб с этим видом графики: 09:00 - 03:00 в тот же день. Конечно 3:00 в следующий день, но мы выбрали эту возможность, чтобы сделать проще для клиента, чтобы сохранить расписания. Ну, в данном примере это делает, что «Carbon :: сейчас („Europe / Madrid“) -> формат (» H: я: s «)» не между opening_time и CLOSING_TIME, поэтому этот паб это не будет выглядеть как открыт (когда он является). Делая некоторые тесты на MySql я пытался что-то вроде этого: SELECT *, CONCAT (YEAR (NOW ()), '-', МЕСЯЦ (NOW ()), '-', `week_day`, '',` opening_time`) AS `opening_datetime`, ЕСЛИ (` closing_time` < `opening_time`, CONCAT (год (NOW ()), '-', МЕСЯЦ (NOW ()), '-',` week_day` + 1 '', `closing_time` ), CONCAT (год (NOW ()), '-', МЕСЯЦ (NOW ()), '-', `week_day`, '',` closing_time`)) КАК `closing_datetime` ОТ tappear_borrador.schedules; Он отлично работает настройка «еще один день» в CLOSING_TIME, когда это больше, чем 00:00, но у меня возникают проблемы, чтобы установить его в моей функции: $ pubs-> whereHas (функция «pubSchedules», ($ пабах) {$ pubs-> где ( 'week_day', углеродистая :: сейчас () -> День недели) -> whereRaw ( "'" Углерод :: сейчас (. 'Europe / Madrid') -> Формат ( 'Ymd H: я: s') "." МЕЖДУ CONCAT (YEAR (NOW ()), '-', МЕСЯЦ (NOW ()), '-', ".Carbon :: сейчас () -.> День недели", '', opening_time) и IF (CLOSING_TIME <opening_time, CONCAT (YEAR (NOW ()), '-', МЕСЯЦ (NOW ()), '-', ".Carbon :: сейчас () -.> День недели" + 1, '', CLOSING_TIME), CONCAT (YEAR (NOW ()), '-', МЕСЯЦ (NOW ()), '-',».Carbon :: сейчас () -> День недели. " '', CLOSING_TIME))"); }); Это я сделал это ничего не возвращает (любые ошибки тоже). ((Я также проверил, что json_die (Carbon :: сейчас () -> День недели + 1) не возвращает еще одно значение текущего дня ... это может быть одна из проблем)), проверьте, что изменилось текущий момент для сравнения лет / месяц / час: Я: s с временем открытия и закрытия. Так друзья: мне нужна ваша помощь, чтобы улучшить мой последний код, чтобы сделать, если CLOSING_TIME <opening_time, CLOSING_TIME будет в следующий день и затем сравнить, если текущий момент / не между ними. Есть идеи? большое спасибо
1

голосов
1

ответ
66

Просмотры

Unsupported discriminator type null for query over column mapped to java.lang.Class

Мы используем Hibernate для ОРМА и пытаемся отобразить столбец типа java.lang.Class. Колонка правильно отображается, но это не возможно сделать «типа» запрос с использованием колонки в ИНЕКЕ. Мы имеем следующую сущность @Entity @Table (Name = "my_entities") общественный класс MyEntity {частный типа класса; @Column (имя = "тип") общественный класс GetType () {типа возвращаемого; } // сеттер} И метод с запроса общественного MyEntity ГЭТ (класс clazz) {Session сессия = sessionFactory.getCurrentSession (); Критерии Критерии = session.createCriteria (MyEntity.class); criteria.add (Restrictions.eq ( "тип", clazz)); Возвращение (MyEntity) criteria.uniqResult (); } В результате это исключение вызвано следующими причинами: org.hibernate.QueryException: неподдерживаемый тип дискриминатора на нуль org.hibernate.loader.
Michal
1

голосов
0

ответ
65

Просмотры

Доступ к модели и ОРМ в различных случаях Django [Microservice Архитектура]

У меня есть проект Django Rest при поддержке Postgres базы данных. Теперь каждое приложение в рамках этого проекта должен развязаны и быть перемещены в другой сервер. Но в нынешних взглядах есть места, где я импортировать модели из другого приложения и выполнять операции через ORM. Имея это в виду, как я могу получить доступ к модели из различных приложений (который будет запускаться в качестве отдельного экземпляра Джанго на разных серверах), а также выполнять запросы на них. ?
Lubi
1

голосов
2

ответ
161

Просмотры

Java ORM без карт

Работа с Hibernate, я заметил, что все объекты Java вдаваясь в настойчивостью определяются в файле отображения. Есть ли способ, чтобы зависеть только от аннотаций вместо отдельного .xml для этого? На момент создания, мы не знаем, что объект, который должен быть сохранен содержит. Мы знаем, что это примитивные типы данных, строки, Интс, поплавки / двойники, но мы не знаем, сколько из каждого поля объекта может содержать до того же времени он должен иметь таблицу, созданную для того, чтобы ввести в БД. Обратите внимание, что Hibernate является только первым решением ОРМ, что я смотрел на. Я не привязан к ней, если есть другой ORM решение, которое решает эту проблему.
Sakamoto Kazuma
1

голосов
0

ответ
36

Просмотры

Найти столбец БД максимальную длину от внутреннего интерфейса при использовании Hibernate

Я использую (пакеты JPA, а также на местах) Hibernate в качестве ORM в моем коде. У меня есть POJO, и соответствующие им HBM файлы. Теперь я даюсь с именем класса POJO. Мне нужно, чтобы получить имя таблицы БД, что отображается POJO и максимальная допустимая длина каждого и каждого поля БД этой таблицы. После некоторых исследований я нахожусь под впечатлением, что я, вероятно, нужно использовать классы, как DatabaseMetaData, ResultSet, ResultSetMetaData и т.д., но, однако, не имеют ни малейшего понятия о them.I я также открыты для других подходов. Мне нужен чистый подход к этому, а также, что лучше с точки зрения производительности. Пожалуйста помоги.
DockYard
1

голосов
0

ответ
44

Просмотры

Counting overlapping days in django

In my django project, I store user's vacation: class VacationRequest(BaseModel): requested_by = models.ForeignKey(User, related_name='vacation', verbose_name='User') start = models.DateField(__('Start')) end = models.DateField(__('End')) I need a feature to generate report. Reports are generated for selected range of days: class Report(BaseModel): company = models.ForeignKey(Company, related_name='reports') department = models.ForeignKey(Department, verbose_name=__('Department'), related_name='reports', null=True, blank=True) title = models.CharField(verbose_name=__('Title'), null=True, blank=False, max_length=32) start = models.DateField(__('Start')) end = models.DateField(__('End')) csv = models.FileField(__('CSV'), null=True, blank=True, upload_to=report_upload_path, max_length=256, storage=reports_storage) xls = models.FileField(__('XLS'), null=True, blank=True, upload_to=report_upload_path, max_length=256, storage=reports_storage) pdf = models.FileField(__('PDF'), null=True, blank=True, upload_to=report_upload_path, max_length=256, storage=reports_storage) def generate_files(self): headers = ['First name', 'Last name', 'Department', 'vacation days'] department_kwarg = {'userdata__department': self.department} if self.department else {} vacation_filter = models.Q(vacation__status=2, vacation__start__gte=self.start, vacation__end__lte=self.end) # what should I change here? users = User.objects.filter(company=self.company, **department_kwarg).annotate( days_used=models.Sum(models.Case(models.When( vacation_filter, then=models.F('vacation__archive_net_days') ), output_field=models.IntegerField(), default=0)) ).annotate( days_left=models.F('userdata__vacations_days_in_year') - models.F('userdata__used_vacations_days') ).values_list('first_name', 'last_name', 'userdata__department__title', 'days_used', 'days_left') self._generate_csv(users, headers) self._generate_pdf(users, headers) self._generate_xls(users, headers) it works almost fine, however, I want to calculate overlaping days also. For example, when user's vacation is between 10 July and 20 July and in my report I set start date to 11 July it will return 0 days but it should calculate days between. This is because vacation_filter = models.Q(vacation__status=2, vacation__start__gte=self.start, vacation__end__lte=self.end) -- it uses vacation__start__gte - which is not correct, I am not sure what should I use here How can I achieve this?
dease

Просмотр дополнительных вопросов