Почему только это одно поле контролируемого объекта / сущности Hibernate не создается или не обновляется? - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть объект "Химический", который обновляется в соответствии с записями на странице HTML.Данные возвращаются в код Java правильно, но это одно поле не обновляется и не создается в базе данных.Химический объект определяется следующим образом:

@Entity
@NamedQuery(name="Chemical.findAll", query="SELECT c FROM Chemical c")
public class Chemical implements Serializable {
  @Id
  @Column(name="chemical_id")
  @GeneratedValue(strategy=GenerationType.IDENTITY)
  private int chemicalId;

...
  private string formula; <---  THE FIELD THAT WILL NOT UPDATE/BE CREATED

....

 public void setFormula(String formula) {
   this.formula = formula;
}

public String getFormula() {
   return this.formula;
}

.....

Java-код, который фактически сохраняет / обновляет базу данных:

public void saveOrUpdate(final T data) throws CPDPersistenceException {
    final EntityManager em = getEntityManager();
    try {
    final EntityTransaction transaction = em.getTransaction();
    transaction.begin();
    em.merge(data);
    transaction.commit();
} catch (final PersistenceException e) {
    throw new PersistenceException(e);
}
}

После выполнения кода другие поля в базе данных изменилисьесли изменения были сделаны.Однако «формула» не изменяется и остается пустым полем.Кто-нибудь может понять почему?

1 Ответ

0 голосов
/ 21 ноября 2018

Я думаю, что есть разница между UPDATE и CREATE.

Попробуйте заменить em.merge (data) на em.persist (data)

Сохраняет ли он содержимое в первый разВы создаете новую строку с сохранением?Какова длина вашего определения строки в базе данных?Проверяйте журналы базы данных всякий раз, когда HQL запускается из вашего кода. Жалуется ли журнал в какой-то момент во время сохранения?

Может потребоваться сначала проверить, существует ли строка, прежде чем вы сможете выполнить слияние.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...