`
zimo888
  • 浏览: 13783 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

jpa is not mapped

阅读更多
假设我们的表结构为:(mysql)

Sql代码
CREATE TABLE `t_creditcard` (   
  `id` int(11) NOT NULL auto_increment,   
  `cardName` varchar(20) NOT NULL,   
  PRIMARY KEY  (`id`)   
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
CREATE TABLE `t_creditcard` (
  `id` int(11) NOT NULL auto_increment,
  `cardName` varchar(20) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


写法一:

Java代码
@Entity  
public class CreditCard{   
   private Long id;   
   private String name;   
}   
  
//测试代码1   
CreditCard cc = new CreditCard();   
cc.setCardName("测试卡");   
cc = ccDao.persist(cc); 
@Entity
public class CreditCard{
   private Long id;
   private String name;
}

//测试代码1
CreditCard cc = new CreditCard();
cc.setCardName("测试卡");
cc = ccDao.persist(cc);

日志输出Hibernate: insert into CreditCard (cardName, id) values (?, ?)
该写法适用于表名和实体类名相同,如果表名和类名不用,该写法则不能正确插入。

写法二:

Java代码
@Entity(name="t_creditcard")   
public class CreditCard{   
   private Long id;   
   private String name;   
}   
  
//如果你的dao中有类似的查询   
//测试代码2   
session.createQuery("from CreditCard c where c.id=10001").list();   
//测试代码3   
session.createQuery("from t_creditcard c where c.id=10001").list(); 
@Entity(name="t_creditcard")
public class CreditCard{
   private Long id;
   private String name;
}

//如果你的dao中有类似的查询
//测试代码2
session.createQuery("from CreditCard c where c.id=10001").list();
//测试代码3
session.createQuery("from t_creditcard c where c.id=10001").list();



测试代码1日志输出为:Hibernate: insert into t_creditcard (cardName, id) values (?, ?),可以正确插入。
测试代码2日志输出为:org.springframework.orm.hibernate3.HibernateQueryException: CreditCard is not mapped [from CreditCard c where c.id=10001];
所以@Entity 的name对应的是实体别名。
测试代码3通过。

所以如果你的库表名和你的实体类名不同而且还想在使用HQL或者JPQL的话,正确的方法应该是:

Java代码
@Entity  
@Table(name="t_creditcard")   
public class CreditCard{} 
@Entity
@Table(name="t_creditcard")
public class CreditCard{}

该写法以上测试全部通过。
分享到:
评论

相关推荐

    jpa例子jpajpa

    **Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理关系数据库中的对象-关系映射(ORM)。它提供了一种方式,让开发者可以用面向对象的编程模型来操作数据库,而无需直接编写SQL语句。JPA允许你在...

    hibernate常见异常针对于jpa

    @OneToMany(mappedBy = "controlId", fetch = FetchType.LAZY, cascade = {CascadeType.ALL}) private List<ChildEntity> children; ``` - `CascadeType.PERSIST`: 当父实体被保存时,所有关联的子实体也将被...

    JPA源文件/jpa学习

    **JPA(Java Persistence API)**是Java平台上的一个标准,用于管理关系数据库中的数据,它简化了在Java应用程序中存储、检索和管理对象的工作。JPA是Java EE和Java SE环境中的一种ORM(Object-Relational Mapping)...

    springDataJapDemo

    Spring Data JPA是Spring框架的一个模块,用于简化Java Persistence API(JPA)的使用,它提供了与各种数据库交互的能力,而无需编写大量的SQL代码。在本文中,我们将深入探讨如何利用Maven构建一个基于Spring Data ...

    JPA

    `mappedBy`属性用于指定反向映射的字段,`fetch`属性则用于指定加载策略,如`EAGER`立即加载或`LAZY`延迟加载。 - **多对多(Many-to-Many)**:这种关系涉及多个实体之间的关联。`@ManyToMany`注解用于映射这种...

    JPA教程,包括TOPLink JPA,Hibernate JPA,Open Jpa,jpa批注

    **Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理关系数据库中的数据。它为Java开发者提供了一种对象关系映射(ORM)机制,将业务对象与数据库表进行映射,使得开发者可以使用面向对象的方式来操作...

    Pro JPA2 精通JPA2

    《Pro JPA2:精通Java™ Persistence API》是一本由Mike Keith和Merrick Schincariol撰写的关于Java持久化API(JPA)的权威指南。本书深入探讨了JPA2,即Java Persistence API的第二版,是Java EE 6标准的一部分。...

    JPA中文解释,JPA的API

    Java Persistence API(JPA)是Java平台上的一个标准,用于管理关系数据库中的对象持久化。它简化了在Java应用程序中存储、检索和管理数据的过程,是Enterprise JavaBeans(EJB)的一部分,也是Spring框架中的一个...

    JPA 开发中遇到的错误

    org.hibernate.hql.ast.QuerySyntaxException: person is not mapped 此异常表明在HQL查询语句中引用了一个未被持久化类映射的对象或属性。例如,当你尝试查询一个名为`Person`的实体时,如果`Person`实体并未正确...

    JPA 标注 JPA标签手册

    Java Persistence API (JPA) 是Java企业版5(Java EE 5)的一部分,与Enterprise JavaBeans(EJB)3.0规范一起,极大地简化了Java持久化。它提供了一种对象关系映射方法,允许您以标准、可移植的方式声明性地定义...

    spring注解+spring data jpa文档+JPA文档.rar

    Spring框架的核心特性包括依赖注入(DI)和面向切面编程(AOP),并且它还提供了对数据库操作的支持,这主要通过Spring Data JPA和Java Persistence API(JPA)实现。 Spring注解是Spring框架中的一大特色,它极大...

    Spring Data JPA中文文档[1.4.3]_springdatajpa_erlang_waitxpf_

    **Spring Data JPA** 是一个基于 **Java** 的开源框架,它是 **Spring Framework** 的一个模块,主要用于简化 **Java Persistence API (JPA)** 的使用。JPA 是 Java 平台上的一个标准,用于管理和持久化应用程序的...

    Gemini JPA 介绍资料

    Gemini JPA是在OSGi环境下(特别是Eclipse RCP)中使用的Java持久化框架。OSGi是一个模块化服务平台,允许在Java环境中动态地安装、启动、停止和卸载组件,而不会影响其他组件的正常运行。在Java开发中,持久化层...

    Spring Data JPA 简化 JPA 开发

    Spring Data JPA 是一个由 Spring 框架提供的强大库,它极大地简化了基于 Java Persistence API (JPA) 的数据库访问。JPA 是 Java 平台上的标准 ORM(对象关系映射)规范,允许开发者使用面向对象的方式处理数据库...

    学习hibernate必读,JPA2新特征和JPA2映射的神秘之旅。

    - **双向关联的注解优化**:如`@OneToMany(mappedBy="...")`,简化了关联的管理。 - **延迟加载(Lazy Loading)增强**:通过引入`FetchType.LAZY`,可以更精细地控制属性的加载时机。 - **查询语言JPA QL的扩展*...

    Spring Data JPA API(Spring Data JPA 开发文档).CHM

    Spring Data JPA API。 Spring Data JPA 开发文档。 官网 Spring Data JPA API。

    JPA学习文档笔记

    - 通常情况下,还需要指定外键字段(`mappedBy`)或者联合主键(`@PrimaryKeyJoinColumn`)来明确关联关系。 - **一对多关联**: - 使用`@OneToMany`注解表示一对多关系,通常还需要使用`@JoinColumn`或`@JoinTable`来...

    JPA Demo 简单的了解下jpa

    **JPA(Java Persistence API)简介** Java Persistence API(JPA)是Java平台上的一个标准,用于管理和持久化Java对象到关系数据库。它是Java EE和Java SE环境中处理对象关系映射(ORM)的一种规范,旨在简化...

Global site tag (gtag.js) - Google Analytics