gpt4 book ai didi

java - Hibernate 不查找属性值

转载 作者:太空宇宙 更新时间:2023-11-04 13:50:35 25 4
gpt4 key购买 nike

使用 hibernate 并且我在保存实例时遇到问题。

我有以下数据库结构:

Item
- id
- attributeId
- other stuff

Attribute
- id
- code
- name

假设属性表具有如下条目:

1  T Type1
2 R RType
3 G GType

以下是该类的注释:

Class Attribute {
@Id
@Column(name = "ID")
protected long id;

@Column(name = "CODE", updatable = false)
protected String code;

@Column(name = "NAME", updatable = false)
protected String name;
}

所以我希望能够创建一个新的 Item 类,并为其指定一个 Attribute 类,并填写代码和名称。让 hibernate 查找属性的 id,并将该 id 插入到 Item 的 attributeId 列中。

这些是我对 Item 的注释:

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE,
generator = "item_seq")
@SequenceGenerator(name = "item_seq", sequenceName = "ITEM_SEQ",
allocationSize = 1)
@Column(name = "ID")
protected long id;

@OneToOne(cascade = CascadeType.PERSIST, fetch = FetchType.EAGER)
@JoinColumn(name="ATTRIBUTE_ID", insertable = true, updatable = true)
private Attribute attribute;

如何为 Item 类提供一个 Attribute 类,并填写代码和描述,并让它查找属性的 id 并将其分配给 Item?

最佳答案

您不需要显式设置属性 id,Hibernate 会为您做这件事。您只需将 Attribute 的实例(无论是新实例还是现有实例)设置为 Item 实例,然后保存该项目。像这样的事情

Item item = new Item();
// if you want to use an existing attribute, fetch it from some DAO by id
Attribute att = session.get(Attribute.class, someId);
item.setAttribute(att);
// save item
session.save(item);

关于java - Hibernate 不查找属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30328944/

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