我想将列表中的所有字符串值作为一个字符串保存到数据库中。如果按如下方式实现,它将保存空值。有没有办法保存方法的返回值而不是字段本身?
@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 返回它。此外,您不应同时使用字段注释和属性注释。
关于java - Hibernate - 保存方法的返回值而不是字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60687816/