@JoinColumn如何控制不生成外键

发布于 2021-12-02 22:54:54 字数 1846 浏览 806 评论 5

@Entity
@Table(name="users")
public class User {
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Integer id;
	
	@Column
	private String name;
	
	@OneToOne(optional=true)
	@JoinColumn(name="card_id", nullable=true, insertable=false, updatable=false, referencedColumnName="id")
	private IdCard idCard;

	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public IdCard getIdCard() {
		return idCard;
	}
	public void setIdCard(IdCard idCard) {
		this.idCard = idCard;
	}
}



@Entity
@Table(name="id_cards")
public class IdCard {
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Integer id;
	
	@Column(name="card_num")
	private String cardNum;
	
	@Column
	private String name;
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getCardNum() {
		return cardNum;
	}
	public void setCardNum(String cardNum) {
		this.cardNum = cardNum;
	}
}
启动应用,发现生成了如下SQL

Hibernate: create table id_cards (id integer not null auto_increment, card_num varchar(255), name varchar(255), primary key (id))
Hibernate: create table users (id integer not null auto_increment, name varchar(255), card_id integer, primary key (id))
Hibernate: alter table users add constraint FKe5nfq7ke10bu6e4ugj5mlj7pf foreign key (card_id) references id_cards (id)

有个外键,请问如何控制不让生成外键





如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

浮生未歇 2021-12-03 18:05:26

这样的话 查不出数据,不能级联查询,属性都是null啊

风柔一江水 2021-12-03 15:21:10

把注解去掉就行了!去掉注解关联~

情痴 2021-12-03 15:18:57

引用来自“mytaia”的评论

hibernate.hbm2ddl.auto=none

风苍溪 2021-12-03 11:46:25

设置了这个就查询可以级联,而且又不会创建外键了吗?但是数据库表HB也不会新建吧

小情绪 2021-12-03 08:52:39

hibernate.hbm2ddl.auto=none

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文