Hibernate-保存方法的返回值,而不是字段



我想将列表中的所有String值作为一个String保存到数据库中。如果按照以下方式实现,则保存空值。有没有办法保存方法的返回值而不是字段本身?

@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 "

如果有任何提示,我将不胜感激。

只需定义一个名为"validResultListAsString"的文件,并将其值设置为setValidResultList,然后通过getValidResultListAsString返回。此外,您不应该同时使用文件和属性注释。

最新更新