2015-07-23 4 views
0

У меня есть EntityCondition, и я хочу получить SQL от него.Получить команду SQL от EntityCondition

Для экс:

EntityCondition: partyId = 'admin' 
-> SQL: party_id = 'admin' 

Я пытался найти в проекте OFBiz, но я ничего не нашел.

+0

Я не уверен, чего вы хотите достичь, пожалуйста, будьте более конкретными. Для вышеизложенного существует, по крайней мере, объект, который вы хотите выбрать, отсутствует. Для партии это будет: SELECT * FROM PARTY WHERE PARTY_ID = 'admin'; –

+0

@MichaelBrohl Когда мы используем EntityCondition # toString(), мы получим 'partyId = 'admin'', но для запроса в базу данных я должен быть' party_id' не 'partyId'. –

ответ

3

В OFBiz существует общее правило: сущности и поля определены в CamelCase, например, PartyAttribute или productId. Объекты начинаются с прописной буквы (например, класса Java), а поля начинаются с строчной буквы (например, атрибута класса Java).

Заглавная буква внутри объекта или поля преобразуется в «_ [нижний регистр]».

Так

EntityCondition: partyId = 'admin' 
-> SQL: party_id = 'admin' 

Полный выбор для лица PartyAttribute будет

SELECT * FROM PARTY_ATTRIBUTE WHERE PARTY_ID = 'admin' 

Вы можете попробовать

makeWhereString(ModelEntity modelEntity, List<EntityConditionParam> entityConditionParams, DatasourceInfo datasourceInfo) 

для достижения этой цели программно, но я не пробовал.

+0

Это именно то, что я сделал, по-прежнему требует кода, спасибо за вашу помощь :) –

+0

Обновите мой ответ, чтобы дать подсказку makeWhereString (ModelEntity modelEntity, List entityConditionParams, DatasourceInfo datasourceInfo) –

+0

Нет, второй подход требует больше кодов :-) –