Как использовать Hibernate в программе Java для обновления значения в столбце? - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть простое веб-приложение, которое проверяет состояние столбца, оно может быть активным (значение 1) или устаревшим (значение 2).

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

Я знаю, что это будет работать, потому что я непосредственно изменил значение в самом столбце, ноконечно, мне нужно реализовать логику в самом коде.

Это фрагмент файла File.java:

private EntityManager em;

     public Node get_folder(long fileID) {
            try {
                List resList = nodeFacade.list_parent(fileID, LinkType.FILE);


                List resList1 = nodeFacade.list_parent(fileID, LinkType.VER_LINKS);

                if (resList == null) {
                    throw new Exception("failed to get folder of a file." + nodeFacade.getMsg());
                }

                if (resList.size() > 1) {
                    throw new Exception("one file cannot be attached to more than one folder(s).");
                }

                //fixed bugs: modified here to display different version
                if(resList1.size()==1){
                    Fmedia fmedia = new Fmedia(fileID);
                    fmedia.setFstatus(2);

     /// This section where I expect the status to be changed from 1 to 2

                    return (Node) resList1.get(0);
                }

                return (Node) resList.get(0);

            } catch (Exception e) {
                e.printStackTrace();
                msg = CoreUtil.wrapMsg(CoreUtil.FUNC_ERROR,
                        this.getClass().getName(), "get_folder", e.getMessage());
                return null;
            }
        }

. Учитывая эту логику, он должен изменить существующее значение с 1 на 2 непосредственно перед отображением документа, чтобы иметь возможность отключить редактирование.,Проблема в том, что в таблице ничего не обновляется, ничего не меняется, и я не знаю почему.Запущена отладка, и она передает правильный идентификатор, но не меняет / не обновляет столбец состояния.

Fmedia.java:

@Entity
@Table(name = "fmedia")
public class Fmedia implements Serializable {
 @Column(name = "FSTATUS")
    private int fstatus;

  public int getFstatus() {
        return fstatus;
    }

    public void setFstatus(int fstatus) {
        this.fstatus = fstatus;
    }

Он использует Hibernate для вставки или обновлениятаблица, но добавление em.persist(fmedia) не помогает и дает больше ошибок.Кроме того, я не могу использовать .save для JPA, потому что мой проект работает на JAVA 7.

Как я могу решить эту проблему?

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