Hibernate - сохранить возвращаемое значение метода, а не поля - PullRequest
0 голосов
/ 15 марта 2020

Я хочу сохранить все строковые значения списка в базе данных как одну строковую. Если реализовано как показано ниже, оно сохраняет нулевое значение. Есть ли способ сохранить возвращаемое значение метода вместо самих полей?

@Entity
@Table(name = "commands")
public class Command {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(name = "command")
private String command;

@Transient
private List<String> validResultList = new ArrayList<>();

public List<String> getValidResultList() {
    return validResultList;
}

public void setValidResultList(List<String> validResultList) {
    this.validResultList = validResultList;
}

@Column(name = "valid_commands")
public String getValidResultListAsString() {
    StringBuilder sb = new StringBuilder();
    for (String value : validResultList) {
        sb.append(value).append(" ");
    }
    return sb.toString();
}

}

Поле "valid_commands" - VARCHAR2.

Например:

Command comm1 = new Command("echo test;");
comm1.setValidResultList(Arrays.asList("foo", "bar"));

И его следует сохранить как:

"foo bar "

Буду рад любым советам.

1 Ответ

0 голосов
/ 15 марта 2020

Просто определите поле с именем «validResultListAsString» и установите его значение в setValidResultList и верните его методом getValidResultListAsString. Кроме того, вы не должны использовать аннотации полей и свойств вместе.

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