-
openJPA无法输出主键值,其他字段却可以,why??5
表结构如下
mysql> describe animal;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(40) | YES | | NULL | |
| state | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
实体类如下(getter setter略)
@Entity
public class Animal {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Basic
private String name;
private String state;
}
以如下方法输出表的内容:
public static void main(String[] args) {
EntityManagerFactory factory = Persistence.createEntityManagerFactory("mysql");
EntityManager manager = factory.createEntityManager();
manager.getTransaction().begin();
Query query = manager.createQuery("select a from Animal a order by a.id desc");
List<Animal> animals = query.getResultList();
if(animals != null && animals.size() > 0) {
for(Animal animal : animals) {
System.out.format("%4d %-20s %-20s\n", animal.getId(), animal.getName(), animal.getState());
}
System.out.println("matched total size : " + animals.size());
}else {
System.out.println("数据库表animal没有记录");
}
manager.getTransaction().commit();
manager.close();
factory.close();
}
输出结果如下:
0 openJPA186 state186
0 openJPA146 state146
0 openJPA247 state247
0 openJPA429 state429
0 openJPA475 state475
请问为什么输出的id都是0,这只是初始化的值,id属性根本就没被设置!!知道的请指点,谢谢!!
2009年11月30日 11:57
目前还没有答案
相关推荐
这里的@Id注解标识了主键字段,@GeneratedValue表明主键值由数据库自动生成。其他属性如name和position是员工的属性。 接下来,我们需要配置OpenJPA2,这通常在持久化单元(Persistence Unit)配置文件persistence....
OpenJPA还提供了`@GeneratedValue`来自动生成主键值,`@Column`用于详细定义列属性。 在WebSphere中,我们需要配置一个持久化单元(Persistence Unit)。持久化单元定义了如何连接到数据库,使用哪个JDBC驱动,以及...
而OpenJPA则是一个开源的JPA(Java Persistence API)实现,它为Java应用程序提供了对象关系映射(ORM)的能力,使得开发者可以方便地在Java对象和数据库记录之间进行交互。 **一、Spring框架** Spring的核心在于...
OpenJPA 可以作为独立的持久层框架发挥作用,也可以轻松的与其它 Java EE 应用框架或者符合 EJB 3.0 标准的容器集成。 除了对 JPA 标准的支持之外,OpenJPA 还提供了非常多的特性和工具支持让企业应用开发变得更加...
OpenJPA,全称Open Java Persistence API,是Java平台上的一个开源对象关系映射(ORM)框架,它实现了Java Persistence API(JPA),用于管理Java应用程序中的持久化数据。在这个"openjpademo"示例中,我们将会探讨...
默认情况下,当应用程序第一次获取实体标识时,OpenJPA 框架从数据库中一次性获取 50 个连续的实体标识缓存起来,当下一次应用程序需要获取实体标识时,OpenJPA 将首先检测缓存中是否存在实体标识,如果存在,Open...
OpenJPA(Open Java Persistence API)是Apache软件基金会下的一个开源项目,它是Java持久层标准JPA(Java Persistence API)的一个实现。JPA是Java EE平台中的一个重要组件,用于管理和处理应用程序中的对象-关系...
OpenJPA,全称Open Java Persistence API,是Apache软件基金会的一个开源项目,它实现了Java持久化API(Java Persistence API,JPA),为Java开发者提供了一种标准的方式来管理和持久化应用程序中的对象。...
同时,注意在开发过程中,OpenJPA的日志可以帮助你调试和优化,你可以通过配置控制台输出或日志文件来查看相关信息。 总之,Spring与OpenJPA的结合为Java开发者提供了一个强大且灵活的持久层解决方案,使得我们能够...
学习这些内容可以帮助你深入理解JSF框架及其与OpenJPA和Spring的集成,从而提升你的Web开发技能。通过实践这些示例,你可以更好地掌握如何在实际项目中运用这些技术,构建高效、稳定的Web应用。
### OpenJPA官方手册知识点概览 #### 一、引言 - **OpenJPA**:作为Apache项目的一部分,OpenJPA是一个开源的Java持久化框架(Java Persistence Framework),它支持Java Persistence API (JPA) 的规范。OpenJPA...
OpenJPA,全称为Open Java Persistence API,是Apache软件基金会下的一个开源项目,主要目标是实现Java持久化规范,即JPA(Java Persistence API)。JPA是Java EE平台中的一个核心组件,它提供了一种标准的方式来...
Spring MVC和OpenJPA是Java开发中常用的两个框架,它们分别在Web应用和持久层处理上发挥着重要作用。Spring MVC是Spring框架的一部分,用于构建高效、灵活的Web应用程序,而OpenJPA则是一个实现了Java Persistence ...
OpenJPA API 文档 chm格式
### Apache OpenJPA 2.1 用户指南:Java Persistence API 的深入解析 #### 一、简介 Apache OpenJPA 2.1 是基于 Sun Microsystems 的 Java Persistence 2.0 API (JSR-317 JPA 2.0) 规范实现的一种透明持久化 Java ...
### OpenJPA-Manual 关键知识点解析 #### 一、OpenJPA介绍 **1.1 关于本文档** 本文档旨在提供一个全面且深入的指南,帮助开发人员理解和掌握Java Persistence API(JPA)的核心概念及其在Apache OpenJPA中的实现...
### OpenJPA 手册知识点概述 #### 一、OpenJPA 概述 - **定义与背景**:OpenJPA是Apache组织提供的一款开源项目,它实现了Java Persistence API(JPA)规范,该规范源自EJB 3.0中的JPA标准。OpenJPA作为一个持久化...
同时,OpenJPA可以与Spring框架和其他开源项目很好地集成,适合大型企业级应用。 **4. JPA批注** JPA批注是定义实体类和其属性与数据库表之间映射的关键部分。常用的批注包括: - `@Entity`:标记一个Java类作为...
Apache OpenJPA 是一个开源的Java持久层框架,它实现了Java Persistence API (JPA),这是Java平台上的标准对象关系映射(ORM)规范。JPA允许开发者以面向对象的方式处理数据,而无需直接编写SQL语句,从而简化了Java...