gpt4 book ai didi

java - 从 Ebean 中排除字段以将其保存在 DB 中

转载 作者:行者123 更新时间:2023-11-30 03:34:17 25 4
gpt4 key购买 nike

我有一个用户 bean:

@Entity
public class User extends Model{

@Id
public int id;

public String name;
public String username;
public String email;
public String password;
public Timestamp inscriptionDate;
public Timeline timeline;
}

我将其保存在数据库中,如下所示:

User user = Form.form(User.class).bindFromRequest().get();
user.save();

但我不想保存时间轴用户的字段。

有办法实现这个目标吗?

编辑 1
我在想要的字段上尝试了@Transient,但没有效果。

编辑2
这是时间轴类:

import java.util.Collection;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;

public class Timeline {

public SortedSet<Event> events;
public String familyName;

public Timeline(String familyName)
{
this.events=new TreeSet<Event>(Event.getEventsComparator());
this.familyName=familyName;
}
// some other methods
}

这是 User 类:

@Entity
public class User extends Model{

@Id
public int id;
public String name;
public String username;
public String email;
public String password;
public Timestamp inscriptionDate;
@Transient
public Timeline timeline;

public User(){}

public User(String name, String email, String username, String password){
this.name = name;
this.email = email;
this.username = username;
this.password = password;
}

// Other methods ...
}

编辑3
我使用此方法在数据库中显示我的用户:

public static Result getUsers(){
List<User> users = new Model.Finder(String.class, User.class).all();
return ok(toJson(users));
}

我认为这就是为什么我的时间线总是有一个null字段。时间线实际上没有保存在数据库中,对吗?

最佳答案

我在我的应用程序中成功使用了@Transient。

也许是导入问题:

import javax.persistence.Transient

不是

import java.beans.Transient

编辑2

排除数据库中的字段:@Transient 有效

排除json中的字段:存在几个解决方案,view是一个

关于java - 从 Ebean 中排除字段以将其保存在 DB 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28345582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com