- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在此tutorial ,作者考虑到-
@Entity
@Table
public class Stock implements Serializable {
@Id
@GeneratedValue(strategy = IDENTITY)
@Column
private Integer stockId;
@Column
private String stockCode;
@Column
private String stockName;
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "stock")
private StockDetail stockDetail;
// getters and setters
}
<小时/>
@Entity
@Table
public class StockDetail implements java.io.Serializable {
@Id
@GeneratedValue(generator = "generator")
@GenericGenerator( name = "generator",
strategy = "foreign",
parameters = @Parameter(name = "property", value = "stock"))
@Column
private Integer stockId;
@OneToOne(fetch = FetchType.LAZY)
@PrimaryKeyJoinColumn
private Stock stock;
// getters and setters
}
hibernate.cfg.xml 文件具有自动创建如下所示表的条目-
<property name="hbm2ddl.auto">create</property>
<小时/>
CREATE TABLE stock
(
stockid serial NOT NULL,
stockcode character varying(255),
stockname character varying(255),
CONSTRAINT stock_pkey PRIMARY KEY (stockid)
)
和
CREATE TABLE stockdetail
(
stockid integer NOT NULL,
compdesc character varying(255),
compname character varying(255),
listeddate date,
remark character varying(255),
CONSTRAINT stockdetail_pkey PRIMARY KEY (stockid)
)
您会看到stockdetail 表上没有外键约束。为什么?
如果我将@PrimaryKeyJoinColumn更改为@JoinColumn
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn
private Stock stock;
然后是本例中 hibernate 生成的表 -
CREATE TABLE stockdetail
(
stockid integer NOT NULL,
compdesc character varying(255),
compname character varying(255),
listeddate date,
remark character varying(255),
stock_stockid integer,
CONSTRAINT stockdetail_pkey PRIMARY KEY (stockid),
CONSTRAINT fk9rrwxdqh1fjcoo2usdix4qoiw FOREIGN KEY (stock_stockid)
REFERENCES stock (stockid) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
哪个如预期那样绝对正确?
请推荐一下?
最佳答案
用此更新您的代码。
@OneToOne(fetch = FetchType.LAZY,optional=false)
@PrimaryKeyJoinColumn
private Stock stock;
关于java - @PrimaryKeyJoinColumn 在 Hibernate 中的一对一映射中无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41386223/
在 hibernate-jpa-api-2.0 下,我可以使用 @PrimaryKeyJoinColumn 和 oneToOne 关系指定外键的名称吗? 我尝试了以下方法,但似乎不起作用。 @OneT
我之前让 @PrimaryKeyJoinColumn 工作,现在我正在尝试使用 spring boot,但我不知道我错过了什么,这很奇怪,因为似乎我已经做对了一切: 人员类别: @Table(
我有两个对象 Mat 和 MatImage,分别是父对象和子对象。 MatImage的主键是Mat的id,它们是一对一的关系。 如果我正确理解双向关系,如果我执行类似 matImage.setMat(
在此tutorial ,作者考虑到- @Entity @Table public class Stock implements Serializable { @Id @Generate
我有带有 @Entity 注释的用户类。 @Entity public class User{ @Id @GeneratedValue private Long id; private String
我刚开始使用 Hibernate,对 InheritanceType.JOINED 和 @PrimaryKeyJoinColumn 有疑问。 给定以下数据库表,其中员工引用人员,经理引用员工: cre
@JoinColumn 和 @PrimaryKeyJoinColumn 的具体区别是什么? 您将 @JoinColumn 用于作为外键一部分的列。典型的列可能如下所示(例如,在具有附加属性的连接表中)
有一些这样的类: @Entity @Table(name="person") @Inheritance(strategy=InheritanceType.JOINED) public class Pe
如果没有可插入和可更新参数的@PrimaryKeyJoinColumn(...)与相同,您能否从JPA规范派生 @JoinColumn(..., insertable = false, updatab
我是一名优秀的程序员,十分优秀!