gpt4 book ai didi

java - Hibernate继承在父级之后插入子级

转载 作者:行者123 更新时间:2023-12-02 07:41:50 25 4
gpt4 key购买 nike

我有一个 Hibernate、Spring 和 GWT 应用程序。我有两个表:员工和用户。

每个用户都是一名员工,因此我在数据库中具有一对一的关系(它们通过主键连接),因此用户扩展了员工。当我首先插入用户时,一切正常,它会自动正确插入 parent 。但是,问题是当我尝试为现有员工添加用户条目时,它不会插入具有父 ID 的用户记录,而是重新创建员工记录和用户记录。

 @javax.persistence.Entity
@javax.persistence.Table(name = "User")
@Inheritance(strategy = InheritanceType.JOINED)
@PrimaryKeyJoinColumn(name="Id")
public class User extends Employee
{ .... }

@Reflectable(assignableClasses = true, superClasses = true)
@javax.persistence.Entity
@javax.persistence.Table(name = "Employee")
@Inheritance(strategy = InheritanceType.JOINED)
@PrimaryKeyJoinColumn(name="Id")
public class Employee
{
@Id
@GeneratedValue
@Column(name="Id")
public Integer getId()
{
return id;
}
}

这是正确的做事方式吗?我该如何克服这个问题?

非常感谢。

<小时/>

更新1:

通过向其中添加用户,我的意思是我想创建一个与员工具有相同 ID 的用户。基本上应该变成:

    Insert into User (Id, username,..) Values (1, "Username", ...)

最佳答案

我认为现有的映射没有任何意义。

我建议取消继承并在 Employee 和 UserAccount 之间映射一对一(或一对多)关系。

我认为这更好地反射(reflect)了您的模型。

员工可能是也可能不是系统的用户。在该系统上拥有用户帐户的员工。

如果将来添加更多系统,则使用一对多。员工在零个、一个或多个系统上拥有用户帐户。

关于java - Hibernate继承在父级之后插入子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11477053/

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