【发布时间】:2015-09-22 16:44:34
【问题描述】:
我在 db 中有一个表。创建了一个 pojo 类以将类实例映射到表。我的班级结构是
@Entity
@Table(name = "example")
class example {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
int id;
@Column(name = "SLOT_ID")
int slot_id;
@Column(name = "SLOT_DATE")
String slot_date;
@Column(name = "HOTEL_ID")
String hotel_id;
@Column(name = "ROOM_TYPE_ID")
String room_type_id;
@Column(name = "CREATE_DATE")
String create_date;
@Column(name = "UPDATE_DATE")
String update_date;
@Column(name = "SLOT_PRICE")
Double slot_price;
@Column(name = "AVAILABLE_ROOMS")
Integer available_roooms;
//rest have getter and setter method }
Hibernet 提交部分
public void save(Example example) {
Session session = null;
try {
log.info( example.toString());
session = this.sessionFactory.openSession();
Transaction tx = session.beginTransaction();
session.persist(example);
tx.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
session.close();
}
}
登录我正在获取此日志
Hibernate: insert into example(AVAILABLE_ROOMS, CREATE_DATE, HOTEL_ID, ROOM_TYPE_ID, SLOT_DATE, SLOT_ID, SLOT_PRICE, UPDATE_DATE) values (?, ?, ?, ?, ?, ?, ?, ?)
我可以从同一张表中获取数据,这里是 Code snap `
session = this.sessionFactory.openSession();
Criteria cr = session.createCriteria(Example.class); cr.add(Restrictions.eq("id", id)); List results = cr.list();
if(results.size()>0)
return mapper.writeValueAsString(results.get(0)); //id is auto //incremented in table`
我在日志中没有看到任何错误,但是当我在 DB 中检查时没有插入任何数据。任何线索我错过了什么?
【问题讨论】:
-
你是如何创建你的会话工厂的?
-
嗨约翰,我已经将会话工厂定义为一个 bean,然后它通过实现自动装配 @Autowired public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory;我已经检查过了,我正在获取 sessionFactory 的实例
-
嗨,约翰,我可以从同一张表中获取数据,这里是 Code snap session = this.sessionFactory.openSession();条件 cr = session.createCriteria(Example.class); cr.add(Restrictions.eq("id", id));列表结果 = cr.list(); if(results.size()>0) return mapper.writeValueAsString(results.get(0)); //id是自动的//在表中递增
标签: java hibernate spring-mvc hibernate-mapping spring-annotations