gpt4 book ai didi

java - 无法在 Hibernate 中检索自动生成的 key

转载 作者:行者123 更新时间:2023-11-30 06:36:41 25 4
gpt4 key购买 nike

我创建了一个如下所示的简单表格。

CREATE TABLE CUSTOMERS
(
CUST_ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
CUSTOMER_NAME VARCHAR(24) NOT NULL,
REGION VARCHAR(26),
PRIMARY KEY (CUST_ID)
);

然后我用这个映射文件为这个表创建了一个映射

<class name="Customer" table="CUSTOMERS">
<id type="int" column="CUST_ID" >
<generator class="native"></generator>
</id>
<property name="customerName" type="string" column="CUSTOMER_NAME" />
<property name="region" type="string" column="REGION"/>
</class>

然后我创建了一个如下所示的简单类来访问数据库。

public class CustomerDao {

public void addCustomer(Customer customer) {
Session session = SessionManager.getSessionFactory()
.getCurrentSession();
session.beginTransaction();
session.saveOrUpdate(customer);
session.getTransaction().commit();
}

public List<Customer> getAllCustomer() {
Session session = SessionManager.getSessionFactory()
.getCurrentSession();
session.beginTransaction();
List<Customer> booksList = session.createQuery("from Customer").list();
session.getTransaction().commit();
return booksList;
}
}

Customer 类只是一个 POJO

public class Customer {
private int customerID;
private String customerName;
private String region;
//getters setters
}

但它不绑定(bind)到表中生成的键。

public class Starter {
public static void main(String[] args) {
List<Customer> lstCust = daoCust.getAllCustomer();
for (Customer cust : lstCust) {
System.out.println(cust);
}
}
}

输出是这样的?

Customer Details:
------------
Customer ID:0
Customer Name: Symera
Region:Asia

Customer Details:
------------
Customer ID:0
Customer Name: Indra
Region:US

Customer Details:
------------
Customer ID:0
Customer Name:Istaf
Region:US

我是否遗漏了我的映射中的某些内容?添加客户没有问题,但检索自动生成的 key 有问题。

最佳答案

我认为您的 hbm 文件中缺少 id 标签的名称属性可能是问题所在:

<id  type="int" column="CUST_ID" name="customerID">
<generator class="native"></generator>
</id>

关于java - 无法在 Hibernate 中检索自动生成的 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4530833/

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