2012-04-05 1 views
0

Я использую hibernate, struts, extjs в моем проекте.Скопируйте не пустое, а не пустое поля от одного объекта к другому объекту того же типа (объекты одного типа) в java

У меня есть объект клиента с этими полями:

CustID,
custName, адрес, телефона

и в моем проекте со стороны пользовательского интерфейса я получаю клиент объекта с custName ,

Поэтому мне нужно обновить вышеуказанный объект (custName уникален). У меня есть только один объект с тем же именем клиента. Поэтому я получу этот объект, используя имя клиента (объект из БД).

Теперь мне нужно сохранить объект с обновленным именем клиента.

Если я сохранить следующим образом меня есть объект клиента от пользовательского интерфейса, является Каст

cust1 Клиент = getCustomerByName (cust.getCustName());

cust.setCustId (cust1.getCustId()); сохранить (касты);

Если я это сделаю, я потеряю адрес и номер телефона клиента.

Итак, как я могу скопировать один объект, но не пустой или не пустой значения поля для другого объекта того же типа.

Может ли кто-нибудь помочь. Я просто застрял здесь. Это мешает мне спасти.

Заранее благодарен!

+0

Любопытная модель данных, где CustomerName будет уникальным, и CustomerId будет обновлен. – radimpe

+0

@radimpe Использование идентификатора клиента как внутренней цели, но мое имя клиента уникально в моем случае. И не проблема с uniquenes, я просто привел пример модели данных, это не rea. Но как скопировать? – Bindu

ответ

0

Два варианта. Используйте отражение, чтобы найти все поля и скопировать те, которые не равны нулю. Или лучше, напишите метод обновления, который явно проверяет каждое поле и, при необходимости, обновляет поля экземпляра базы данных.

0

Вы смешиваете свои ссылки на cust и cust1.

cust Если уже не был адрес, никакого количества установки только custId на cust также скопировать адрес из cust1.

+0

Я должен проверять каждый раз, когда имя клиента равно null или адрес равен NULL. Здесь модель данных имеет меньше полей. В моем случае его так много. Я не могу проверить все, поэтому хочу скопировать только не нулевые, а не пустые поля. пока и, если я не скопирую старые значения, будут потеряны. – Bindu

+0

@Chinni - но если вы не проверите, как вы узнаете, является ли значение нулевым или нет ... Иногда вам просто нужно сосать его и выкрутить эти утверждения 'if'. – pap

+0

Это случай, когда есть компромисс для размышлений. Reflection имеет стоимость эффективности исполнения, но может устанавливать любое количество полей с минимальным количеством кода. –

Смежные вопросы