我有一个Agent类和一个扩展Agent的User类。 我想将一个持久化的代理程序转发给用户,并使用相同的id,name和firstname持久保存用户。我没有在Agent表中插入其他行的内容。我怎么能这样做?
这是我的课程。
@Entity
@Table(name = "agent")
@Inheritance(strategy = InheritanceType.JOINED)
public class Agent {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
protected Integer id;
@Column(name = "fistname", nullable = false)
protected String fistname;
@Column(name = "name", nullable = false)
protected String name;
}
@Entity
@Table(name="user")
public User extends Agent{
@Column(name = "login", nullable = false, unique = true)
public String login;
@Column(name = "password", nullable = false)
public String password;
我想这样做
Agent agent=agentService.findOne(1);
User user = new User(agent);
user.setLogin("login");
...
user=userService.saveAndFlush(user);
ok = user.getId() == agent.getId();
总结一下,我想在需要时向用户授予代理。
答案 0 :(得分:1)
您无法将代理转发给用户,但您可以通过在用户属性中设置代理的属性来从代理构建用户,除非您已从代理中添加了复制构造函数 - >用户类中的用户在这两种情况下,都会创建一个新用户,并添加一个新行。
答案 1 :(得分:0)
我一直都是这样做的。它正在工作,但我失去了用户是专业代理的事实。
List<Integer> originalPlusOne = new ArrayList<>(new MappedList<>(original, i -> i+1));