有一个实体类 Article.java
里面有两个字段
@ManyToMany(cascade = {CascadeType.PERSIST})
private List<Tag> tags = new ArrayList<>();
@Transient
private String tagStr;
tagStr 的作用是将 tags 拼接成字符串(StringUtils.join(tags , ",")),然后在前台显示, 这是一个非数据库字段.
我想请教一下如何给 tagStr 动态赋值?
我尝试过在 tagStr 的 set 方法里面赋值,在前台里面调用这个属性,结果返回的是空.
public void setTagStr(String tagStr) {
this.tagStr = StringUtils.join(tags , ,);
}
在网上搜索了半天, 还没找到什么适合的解决方案,麻烦各位大佬帮忙看一下
1
gaobing 2020-02-18 22:24:52 +08:00 via Android 1
没有 tagStr 字段,set 方法不会被调用的,select 语句里使用 select “1” tagStr,... ,或者 get 方法设置一下 public String getTagStr(String tagStr) {
return StringUtils.join(tags , ,); } |
2
Jianrry OP @gaobing
get 方法里面已经试过了, 返回的是报错信息 ``` A problem occurred whilst attempting to access the property 'tagStr': 'Unable to access property 'tagStr' through getter method' ``` tagStr 这个属性没有办法通过 get 方法访问到 至于 select 语句里使用 select “1” tagStr,... ,我用的是 springboot jpa 里面没有办法写 sql 语句,所以没有尝试. |
5
jamesxu 2020-02-18 23:41:13 +08:00 via iPhone 1
|
6
Jianrry OP @jamesxu 上面的 get 方法确实写错了,不需要传参,但正确的 get 方法我也试过了呀,还是和上面一样的报错信息...
public String getTagStr() { return StringUtils.join(tags,","); } |
7
wpblank 2020-02-19 01:11:47 +08:00 via iPhone 1
直接把变量删了,单独加这个 get 方法呢?
|