java - @GenericGenerator(name = "generator", strategy = "foreign") 到标准 JPA 2

标签 java hibernate jpa-2.0

我想知道是否有标准的方法来转换类似的东西

@GenericGenerator(name = "generator", strategy = "foreign", parameters = @Parameter(name = "property", value = "user"))
@Id
@GeneratedValue(generator = "generator")
@Column(name = "id", unique = true, nullable = false)
public Integer getId() {
    return this.id;
}

没有 hibernate 的标准 JPA 2 模型

编辑:让我们看看两个实体(我只保留注释的有趣部分)

@Entity
@Table(name = "author", catalog = "test")
public class Author implements java.io.Serializable {

    @GenericGenerator(name = "generator", strategy = "foreign", parameters = @Parameter(name = "property", value = "user"))
    @Id
    @GeneratedValue(generator = "generator")
    @Column(name = "id", unique = true, nullable = false)
    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    @OneToOne(fetch = FetchType.LAZY)
    @JsonBackReference
    @PrimaryKeyJoinColumn
    public User getUser() {
        return this.user;
    }

@Entity
@Table(name = "user", catalog = "test")
public class User implements java.io.Serializable {
    @OneToOne(fetch = FetchType.LAZY, mappedBy = "user")
    public Author getAuthor() {
        return this.author;
    }

最佳答案

也许您希望这些实体具有完全相同的 ID。如果是这样,只需添加 Author 类

 @OneToOne @MapsId
        public User getUser() {
        return this.user;
    }

@MapsId 注释可以解决问题。你可以在那里查看 http://docs.oracle.com/javaee/6/api/javax/persistence/OneToOne.html (示例 2)

关于java - @GenericGenerator(name = "generator", strategy = "foreign") 到标准 JPA 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13038724/

相关文章:

java - JDBC tomcat连接池不工作

java - 从不同的模块 Autowiring bean

java - 从 jetty 服务器发出 SQL 请求时如何修复此 SSL 错误

java - 是否可以使用 Java 中的 Open API 代码生成器生成返回 void 但不返回 Void (对象类型)的 Controller ?

java - Moxy:XmlInverse 和 getter/setter 与属性名称不同

java - 如何递归计算一个数的幂?

hibernate - 如何使tablePerHierarchy为假并使用鉴别符?

java - 如何在 QueryDSL 中创建常量数值表达式?

java - JPA 2 Criteria Fetch Path Navigation

java - 从 4.2.7/4.3.0.CR1 开始,Hibernate JPA OneToOne 孤立删除仍然不起作用