01-hibernate注解:类级别注解,@Entity,@Table,@Embeddable
@Entity
@Entity:映射实体类
@Entity(name="tableName")
name:可选,对应数据库中一个表,若表名与实体类名相同,则可以省略。
注意:使用@Entity时候必须指定实体类的主键属性。
第一步:建立实体类:
分别给类名上面加上@Entity注解。给类中作为主键的属性的get方法前面加上@Id注解。
package Com.Entity;
import java.util.Date;
import javax.persistence.Entity;/*JPA主键*/
import javax.persistence.Id;
/*学生实体类*/ @Entity(name="Students")
public class Students {
private int sid;
private String sname;//姓名
private String gender;//性别
private Date birthday;
private String major;//专业
private String address;//地址 public Students()
{ }
public Students(int sid, String sname, String gender, Date birthday, String major, String address) {
//super();
this.sid = sid;
this.sname = sname;
this.gender = gender;
this.birthday = birthday;
this.major = major;
this.address = address;
} @Id
public int getSid() {
return sid;
} public void setSid(int sid) {
this.sid = sid;
} public String getSname() {
return sname;
} public void setSname(String sname) {
this.sname = sname;
} public String getGender() {
return gender;
} public void setGender(String gender) {
this.gender = gender;
} public Date getBirthday() {
return birthday;
} public void setBirthday(Date birthday) {
this.birthday = birthday;
} public String getMajor() {
return major;
} public void setMajor(String major) {
this.major = major;
} public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
} }
第二步:在配置中配置好这个类。

第三步:写测试类:
package Com.Entity;
import java.util.EnumSet;
import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.hibernate.tool.schema.TargetType;
import org.junit.Test; public class TestStudents { @Test
public void testSchemaExport()
{
//创建服务注册对象
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();
//创建Metadata对象
Metadata metadata =new MetadataSources(serviceRegistry).buildMetadata();
//创建SchemaExport对象
SchemaExport export = new SchemaExport();
export.create(EnumSet.of(TargetType.DATABASE),metadata);
}
}
调试后,数据库中正常生成表。
@Table
@Table(name="",catalog="",schema="")
@Entity配合使用,只能标注在实体类的class定义处,表示实体对应的数据库表的信息。
name:可选,映射表名称,默认表名和实体名称一致,只有在不一致的情况下需要指定表名。
catalog(目录):可选,表示catalog名称,默认为:catalog("")。
schema(模式):可选,表示schema名称,默认为:schema("")。

Table注解实例:对于之前的Entity修改如下:
name:表名前面,schema:默认为使用的数据库名


@Embeddable
表示一个非Entity类可以嵌入到另一个Entity类中作为属性而存在。
相当于代替之前单笔操作的的组件属性。
第一步:在建一个非entity类,并且在前加上@Embeddable注解。
package Com.Entity; import javax.persistence.Embeddable; @Embeddable
/*表示一个嵌入类,在另一个实体类中充当属性*/
public class Address {
private String postCode;//邮编
private String address;//地址
private String phone;
public Address()
{ }
public String getPostCode() {
return postCode;
}
public void setPostCode(String postCode) {
this.postCode = postCode;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
} }
第二步:在entity实体类中加入这个类的对象,并且加上set,get方法。

第三步:测试:
发现按照要求生成成功。
01-hibernate注解:类级别注解,@Entity,@Table,@Embeddable的更多相关文章
- Hibernate注解----类级别注解以及属性注解详解----图片版本
这篇文章是我在慕课网上学习Hibernate注解的时候进行手机以及整理的笔记. 今天把它分享给大家,希望对大家有用.可以进行收藏,然后需要的时候进行对照一下即可.这样能起到一个查阅的作用. 本文主要讲 ...
- Hibernate注解-类级别注解
- 01-hibernate注解:类级别注解准备工作
注解简介: 目的:为了简化繁琐的ORM映射文件(.hbm)的配置. JPA与hibernate的关系 JPA:全称 java Persistence API(java持久化API接口) JPA注解是J ...
- Hibernate学习之类级别注解
© 版权声明:本文为博主原创文章,转载请注明出处 类级别注解: 1. @Entity 实体:表示映射实体类,使用@Entity时必须指定实体类的主键属性 @Entity(name="&quo ...
- 02-hibernate注解-属性级别注解
添加方式: 一是写在属性字段上面. 二是写在属性的get访问器上面. 主要有: @Id, @SequenceGenerator @GeneratedValue @Colum @Embedded @Em ...
- Users is not mapped(Hibernate实体类采用注解)
今天做简单的登陆验证web应用时,用HQL语句查询数据表时 总是出现Users is not mapped [from Users u where u.username=? and u.passwor ...
- Hibernate注解----关联映射注解以及课程总结详解----图片版本
上一篇,记录了Hibernate注解----类级别注解以及属性注解详解 ,我们这一节主要讲解的是Hibernate注解----关联映射注解以及课程总结详解. 本节的主要内容: 第3章 关联映射注解 3 ...
- HIbernate实体类注解配置
一.类级别注解 1.@Entity(name="EntityName") 必须 name为可选,对应数据库中一的个表 2.@Table(name="",cata ...
- eclipse逆向生成hibernate的实体类(注解和配置文件)
eclipse从数据库逆向生成Hibernate实体类(注解和配置文件) 分类: hibernate 数据库 java 2011-10-22 21:28 2915人阅读 评论(8) 收藏 举报 做项目 ...
随机推荐
- 【leetcode】200. Number of Islands
原题: Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is s ...
- JDK源码学习笔记——Iterable/Iterator实现原理
Collection接口继承java.lang.Iterable接口,集合类重写了iterator()方法 public interface Iterable<T> { Iterator& ...
- 按树型显示BOM的结构
在制造企业中,生产的每一个产品都由一道或多道工序组成,在组成成品之前,每一道工序经由物料--物料组成半成品,或物料--半成品组成新的半成品,亦或由半成品--半成品组成新的半成品.复杂的成品经由多道工序 ...
- Inno Setup自定义卸载文件名称的脚本
Inno Setup 支持在同一个目录中安装多个应用程序,所以根据安装的先后次序自动将卸载程序文件命名为 unins000.exe,unins001.exe,unins002.exe 等等.这是 IN ...
- (转)c#中判断是不是数字和字母
一.判断字母string str = Console.ReadLine();if (char.isLetter(str)){ }else if (char.IsDigit(str)){ }if(ch& ...
- mormot日志
mormot日志 usesSynLog; if log = nil then // 日志 begin log := TSynLog.Add; log.Family.DestinationPath := ...
- [Ubuntu Setup] Ubuntu 13.04 安装 ia32-libs
http://stackoverflow.com/questions/23182765/how-to-install-ia32-libs-in-ubuntu-14-04-lts sudo -i cd ...
- 【Linux C 多线程编程】互斥锁与条件变量
一.互斥锁 互斥量从本质上说就是一把锁, 提供对共享资源的保护访问. 1) 初始化: 在Linux下, 线程的互斥量数据类型是pthread_mutex_t. 在使用前, 要对它进行初始化: 对于静态 ...
- NetBiosDomainNamesEnabled与SharePoint User Profile Service Application
本文中的内容转自参考资料中的文章. 如果域的NetBios名字跟Fully Qualified Domain Name不同的话, 那么就需要开启UPA的NetBiosDomainNamesEnab ...
- Hibernate原生SQL查询数据转换为HQL查询数据方法
HQL形式:(构造方法不支持timestamp类型) public List<Device> queryByMatherBoardId(String matherBoardId) { St ...