Hibernate Annotation (Hibernate 注解)

基于立创开源ESP32步进电机驱动板硬件设计与优化实践 本文详细介绍了基于立创开源平台的ESP32步进电机驱动板硬件设计与优化实践。重点解析了ESP32-PICO-D4与A4950驱动芯片的选型搭配、电源电路噪声隔离、PCB布局布线技巧以及保护电路设计,为开发者提供了从原理图到PCB的完整优化方案,有效提升驱动板的性能与稳定性。 阅读详情

进入:http://www.hibernate.org

说明文档:

英文:http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/

中文:http://docs.jboss.org/hibernate/annotations/3.4/reference/zh_cn/html_single/

下载:hibernate annotation 3.4.0 GA

得到:hibernate-annotations.jar

   hibernate-commons-annotation.jar

   ejb3-persistence.jar

数据库:mysql

category表:id,name,description       <Pk>id

product表:id,name ,price, description ,category_id                  <pk>id  <fk>category_id

新建java project项目:

Add Hibernate Capabilities

hibernate.cfg.xml

复制代码
 1 <?xml version='1.0' encoding='UTF-8'?>
 2 <!DOCTYPE hibernate-configuration PUBLIC
 3           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 4           "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 5 
 6 <!-- Generated by MyEclipse Hibernate Tools.                   -->
 7 <hibernate-configuration>
 8 
 9  <session-factory>
10   <property name="dialect">
11    org.hibernate.dialect.MySQLDialect
12   </property>
13   <property name="connection.url">
14    jdbc:mysql://localhost:3307/users
15   </property>
16   <property name="connection.username">root</property>
17   <property name="connection.password">root</property>
18   <property name="connection.driver_class">
19    com.mysql.jdbc.Driver
20   </property>
21   <property name="myeclipse.connection.profile">
22    mysqlusers
23   </property>
24   <property name="format_sql">true</property>
25   <property name="show_sql">true</property>
26   <property name="current_session_context_class">thread</property>
27   <mapping class="com.b510.examples.Product" />
28   <mapping class="com.b510.examples.Category" />
29 
30  </session-factory>
31 
32 </hibernate-configuration>
复制代码

利用Hibernate的逆向工程生成:

Category.java      and           Product.java   

Category.java

复制代码
 1 package com.b510.examples;
 2 
 3 import java.util.HashSet;
 4 import java.util.Set;
 5 
 6 // 标准注解
 7 
 8 import javax.persistence.CascadeType;
 9 import javax.persistence.Column;
10 import javax.persistence.Entity;
11 import javax.persistence.FetchType;
12 import javax.persistence.GeneratedValue;
13 import javax.persistence.Id;
14 import javax.persistence.OneToMany;
15 import javax.persistence.Table;
16 
17 //增加的注解
18 
19 import org.hibernate.annotations.GenericGenerator;
20 
21 //当前的类是一个持久化类,是Category这个类。他映射了一个表category。所对应的 数据库是users
22 //这句:@Table(name = "category", catalog = "users")  可以省略
23 @Entity
24 @Table(name = "category", catalog = "users")
25 
26 public class Category implements java.io.Serializable {
27 
28  private static final long serialVersionUID = 3240281547213597385L;
29  private Integer id;
30  private String name;
31  private String description;
32  private Set<Product> products = new HashSet<Product>(0);
33 
34  
35  public Category() {
36  }
37 
38  public Category(String name, String description, Set<Product> products) {
39   this.name = name;
40   this.description = description;
41   this.products = products;
42  }
43 
44  // 主键 :@Id    主键生成方式:strategy = "increment"
45  //映射表中id这个字段,不能为空,并且是唯一的
46  @GenericGenerator(name = "generator", strategy = "increment")
47  @Id
48  @GeneratedValue(generator = "generator")
49  @Column(name = "id", unique = true, nullable = false)
50  public Integer getId() {
51   return this.id;
52  }
53 
54  public void setId(Integer id) {
55   this.id = id;
56  }
57 
58  //映射表中name这个字段 ,长度是500
59  @Column(name = "name", length = 500)
60  public String getName() {
61   return this.name;
62  }
63 
64  public void setName(String name) {
65   this.name = name;
66  }
67  
68  //映射表中description这个字段 ,长度是500
69  @Column(name = "description", length = 500)
70  public String getDescription() {
71   return this.description;
72  }
73 
74  public void setDescription(String description) {
75   this.description = description;
76  }
77 
78  //级联操作:cascade = CascadeType.ALL
79  //延迟加载:fetch = FetchType.LAZY
80  //映射:mappedBy = "category"
81  //一对多方式
82  @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "category")
83  public Set<Product> getProducts() {
84   return this.products;
85  }
86 
87  public void setProducts(Set<Product> products) {
88   this.products = products;
89  }
90 
91 }
复制代码

Product.java

复制代码
 1 package com.b510.examples;
 2 
 3 import javax.persistence.Column;
 4 import javax.persistence.Entity;
 5 import javax.persistence.FetchType;
 6 import javax.persistence.GeneratedValue;
 7 import javax.persistence.Id;
 8 import javax.persistence.JoinColumn;
 9 import javax.persistence.ManyToOne;
10 import javax.persistence.Table;
11 import org.hibernate.annotations.GenericGenerator;
12 
13 
14 @Entity
15 @Table(name = "product", catalog = "users")
16 public class Product implements java.io.Serializable {
17 
18  private static final long serialVersionUID = -1546206493725028472L;
19  private Integer id;
20  private Category category;
21  private String name;
22  private String price;
23  private String descripton;
24 
25  
26  public Product() {
27  }
28 
29  public Product(Category category, String name, String price,
30    String descripton) {
31   this.category = category;
32   this.name = name;
33   this.price = price;
34   this.descripton = descripton;
35  }
36  
37  @GenericGenerator(name = "generator", strategy = "increment")
38  @Id
39  @GeneratedValue(generator = "generator")
40  @Column(name = "id", unique = true, nullable = false)
41  public Integer getId() {
42   return this.id;
43  }
44 
45  public void setId(Integer id) {
46   this.id = id;
47  }
48 
49  //延迟加载:多对一方式
50  //关联信息:外键name = "category_id"
51  @ManyToOne(fetch = FetchType.LAZY)
52  @JoinColumn(name = "category_id")
53  public Category getCategory() {
54   return this.category;
55  }
56 
57  public void setCategory(Category category) {
58   this.category = category;
59  }
60 
61  @Column(name = "name", length = 500)
62  public String getName() {
63   return this.name;
64  }
65 
66  public void setName(String name) {
67   this.name = name;
68  }
69 
70  @Column(name = "price", length = 10)
71  public String getPrice() {
72   return this.price;
73  }
74 
75  public void setPrice(String price) {
76   this.price = price;
77  }
78 
79  @Column(name = "descripton", length = 500)
80  public String getDescripton() {
81   return this.descripton;
82  }
83 
84  public void setDescripton(String descripton) {
85   this.descripton = descripton;
86  }
87 
88 }
复制代码

测试代码:

HibernateTest.java

复制代码
 1 /**
 2  * 
 3  */
 4 package com.b510.examples;
 5 
 6 import java.util.Set;
 7 
 8 import org.hibernate.Session;
 9 import org.hibernate.SessionFactory;
10 import org.hibernate.cfg.AnnotationConfiguration;
11 import org.hibernate.cfg.Configuration;
12 
13 /**
14  *
15  * @author XHW
16  *
17  * @date 2011-7-20
18  *
19  */
20 public class HibernateTest {
21 
22  public static void main(String[] args) {
23   HibernateTest test=new HibernateTest();
24   test.add();
25   test.find();
26  }
27  public void add(){
28  Configuration config=new AnnotationConfiguration();
29  config.configure();
30  SessionFactory sessionFactory=config.buildSessionFactory();
31  Session session=sessionFactory.getCurrentSession();
32  session.beginTransaction();
33  Category c=(Category)session.get(Category.class, 5);
34  
35  Product p=new Product();
36  p.setName("计算机科学与技术");
37  p.setPrice("123");
38  p.setDescripton("计算机科学与技术,好啊,真是红啊");
39  
40  p.setCategory(c);
41  c.getProducts().add(p);
42  
43  session.save(p);
44  session.getTransaction().commit();
45  }
46  
47  
48  public void find(){
49   Configuration config=new AnnotationConfiguration();
50   config.configure();
51   SessionFactory sessionFactory=config.buildSessionFactory();
52   Session session=sessionFactory.getCurrentSession();
53   session.beginTransaction();
54   Category c=(Category)session.get(Category.class, 5);
55    System.out.println("id: "+c.getId()+"  name:"+c.getName());
56    Set<Product> p=c.getProducts();
57    for(Product product:p){
58     System.out.println("id:"+product.getId()+"  name:"+product.getName()+"  description:"+product.getDescripton());
59    }
60    session.getTransaction().commit();
61  }
62 }
复制代码

运行效果:

复制代码
 1 log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
 2 log4j:WARN Please initialize the log4j system properly.
 3 Hibernate: 
 4     select
 5         category0_.id as id1_0_,
 6         category0_.description as descript2_1_0_,
 7         category0_.name as name1_0_ 
 8     from
 9         users.category category0_ 
10     where
11         category0_.id=?
12 Hibernate: 
13     select
14         products0_.category_id as category5_1_,
15         products0_.id as id1_,
16         products0_.id as id0_0_,
17         products0_.category_id as category5_0_0_,
18         products0_.descripton as descripton0_0_,
19         products0_.name as name0_0_,
20         products0_.price as price0_0_ 
21     from
22         users.product products0_ 
23     where
24         products0_.category_id=?
25 Hibernate: 
26     select
27         max(id) 
28     from
29         product
30 Hibernate: 
31     insert 
32     into
33         users.product
34         (category_id, descripton, name, price, id) 
35     values
36         (?, ?, ?, ?, ?)
37 Hibernate: 
38     select
39         category0_.id as id5_0_,
40         category0_.description as descript2_5_0_,
41         category0_.name as name5_0_ 
42     from
43         users.category category0_ 
44     where
45         category0_.id=?
46 id: 5  name:xml33
47 Hibernate: 
48     select
49         products0_.category_id as category5_1_,
50         products0_.id as id1_,
51         products0_.id as id4_0_,
52         products0_.category_id as category5_4_0_,
53         products0_.descripton as descripton4_0_,
54         products0_.name as name4_0_,
55         products0_.price as price4_0_ 
56     from
57         users.product products0_ 
58     where
59         products0_.category_id=?
60 id:9  name:计算机科学与技术  description:计算机科学与技术,好啊,真是红啊
复制代码
【知识图谱】neo4j桌面版安装与配置-解决无法启功问题(2025年最新最全教程) (经历过各种版本NEO4J,相比社区版而言,个人感觉桌面版更适合新手,安装调试更少更方便。如果是社区版改桌面版的,记得删除系统变量里NEO4J_HOME这个变量,否则会报错。 阅读详情

相关推荐

MOSFET开关损耗全面讲解:从原理到优化策略

深入剖析MOSFET开关损耗的产生机制,结合实际应用场景,讲解如何通过驱动设计和电路优化降低损耗,提升系统效率。重点关注mosfet在高频开关下的表现与热管理。

weixin_29476595的博客 1058

org.hibernate.annotations和javax.persistence区别

Hibernate是Java持久化API的一种实现,在可能的情况下,应该使用标准注释(在javax.persistence中)。这样,理论上可以在其他JPA实现上运行代码。 只有当需要Hibernate特定的功能时,才应该使用Hibernate注释。 额外的依赖性只在jpa接口/注释jar文件上,而且非常轻。 @org.hibernate.annotations.Entity是@javax.pe...

一只勤奋的PIG 1613

【eNSP 华为模拟器】小型校园网模拟环境的设计与配置(附eNSP源文件)

【eNSP 华为模拟器】小型校园网模拟环境的设计与配置 一、实验概述 二、交换机的配置 2.1 二层交换机的配置 2.2 三层交换机的配置 三、路由器的配置 四、实验结果 五、实验总结 一、实验概述 按照以下的拓扑连接,自行设计VLAN和IP地址等网络参数,实现PC1到PC2的IP通信。其中,R1,R2为路由器;LSW1,LSW4为3层交换机;LSW2,LSW3 ,LSW6, LSW7为2层交换机;CLIENT1-CLIENT12为PC机。 拓扑图 课程设计要求:(1)IP地址自行规划设计,应该清晰地

qq_43757282的博客 4万+

Hibernate_入门

目录 一、概念 二、主键生成策略 ①程序员自己控制:assigned ② 数据库控制: identity(标识列/自动增长) sequence ③ hibernate控制:increment uuid/uuid.hex ④ 其它:native 三、使用 ①在pom.xml中导入Hibernate相关依赖 ②配置hibernate.cfg.xml文件 ③创建实体类,配置映射文件 ④测试 一、概念 Hibernate是持久层的ORM框架,我们可以通过操作java对象来操作我们的数据库数

隔壁的博客 348

聚类教程:cisTopic——来自单细胞表观基因组学数据的顺式调控主题的概率建模

之前运行这步的时候报错了如下: 后来发现原因是Ubuntu自动把R包更新到4.2版本,但是Rstudio版本没有更新,更新Rstudio即可,更新Rstudio的教程看此教程:。

watermel__的博客 1051

声纹识别初学

最近开始关注声纹识别技术,发现国内做这个的确实没有几家,而且大多重点推声纹认证,用在公安司法金融领域,而我却关注文本无关的声纹识别,这里把我搜到的一点资料汇总在此. 发现njustzj001的专栏有两篇文章适合入门的我,贴下链接: 综述:  http://blog.csdn.net/xmu_jupiter/article/details/47209961 PLDA解释:  http://

u013452331的专栏 2758

org.hibernate.AnnotationException: @org.hibernate.annotations.Table references an unknown table:

今天在开发的项目模块中,利用hibernate自动创建表时报org.hibernate.AnnotationException: @org.hibernate.annotations.Table references an unknown table: 原因是注解类用了@org.hibernate.annotations.Table,如下所示: import javax.persistence.

xiaxia_jessica的专栏 7728

【QT+PCL】串口读取单线激光雷达数据并在QVtkWidget组件中实时刷新(一)

(本文主要记录开发过程以及遇到的困难及解决方式)

2301_76329543的博客 3067

Hibernate annotation 详解

1.级联CASCADE属性的意义: &nbsp; 只有&ldquo;关系标记&rdquo;才有cascade属性:OneToOne ,OneToMany ,ManyToOne ,ManyToMany. &nbsp;&nbsp;&nbsp;级联指的是当主控方执行操作时,关联对象(被动方)是否同步执行同一操作。 &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 一个操作因级联...

闲谈 192

NX二次开发(python)-坯料尺寸(一)

一般在产品制造过程中,往往要判断一个模型在出模方向上的最小包容盒尺寸,在NX中可以用坯料尺寸命令实现,当然也有相应的代码实现,这或许可以帮助我们实现一些产品的坯料尺寸批量输出,节省人力。

dasfanfan的博客 816

FT2004(D2000)开发实战之AMD R5 230显卡驱动适配

AMD R5 230显卡驱动适配

嵌入式Linux 3196

Hibernate常用Annotation标签说明

@ javax.persistence.Entity 实体类定义,该标签表示当前类是一个Hibernate的数据库实体,对应着数据库中的某个表 位置:用于类级别 参数:无 样例:@Entity 注意:导入标签类时可能会有多个,这里使用的是javax.persistence.Entity @javax.persistence.Table 实体类定义,该标签表示当前类是一个H

北京-李大鹏 4244

【读论文】ASR大模型动态热词新方案

大型语言模型(LLMs)以其卓越的通用知识和推理能力重塑了 AI 领域,但它们在处理特定领域或用户的专有词汇(即“热词”)时,往往表现出“选择性失忆”。传统的 RAG 或 Prompting 方案在实时性和准确性上存在瓶颈。阿里的《Hotword Model for Large Models》论文提出了一种“神经插件”方案,它能够在不修改基座模型权重的前提下,动态、精准地将热词能力注入到生成过程中。本文将从架构设计、训练范式到推理逻辑,全方位拆解这一技术的内核,并探讨其在工业级应用中的价值。

kakaZhui的博客 290

Spring下Hibernate Annotation注解

在spring+hibernate环境下使用Hibernate Annotation,其实主要的就是对hibernate实体类的注解。这里要注意的一个问题是要使用包javax.persistence.Entity;下面的注解,而不是org.hibernate.annotation.Entity;接下来就是在spring配置文件中配置,使其支持注解方式即可。annotation.Annota

czx33859066的专栏 765

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Hibernate 注解 annotation

Hibernate 注解 annotation 博客分类:  Hibernate HibernateBeanSQL嵌入式数据结构 一、 实体 Bean 每个持久化POJO类都是一个实体Bean, 通过在类的定义中使用 @Entity 注解来进行声明。 声明实体Bean @Entity public class Flight implements Se

lidongtang的专栏 1295

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Hibernate Annotation中BLOB、CLOB注解写法

在hibernate Annotation中,实体BLOB、CLOB类型的注解与普通的实体属性有些不同,具体操作如下:BLOB类型,类型声明为byte[]: private byte[] content;     注解: @Lob @Basic(fetch = FetchType.LAZY) @Column(name = "CONTE

sz_bdqn的专栏 1425

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【hibernate框架3】使用Annotation注解进行实体类操作

上一篇讲的是hibernate的环境搭建,因为现在大部分公司在使用Annotation来操作实体类进而进行表的建立,免去了写Xxx.hbm.xml表映射文件的烦恼,所以我再写一个用Annotation来操作实体类的例子: 导包什么的我就不说了,详情看上一篇吧,直接切入主题: 1.首先说说什么是注解(Annotation),这个学过Java基础的人应该不陌生,这里只说一下在hibernate框架...

weixin_38213517的博客 196

hibernate annotation 注解

(1) 简介: 在过去几年里,Hibernate不断发展,几乎成为Java数据库持久性的事实标准。它非常强大、灵活,而且具备了优异的性能。在本文中,我们将了解如何使用Java 5 注释来简化Hibernate代码,并使持久层的编码过程变得更为轻松。   传统上,Hibernate的配置依赖于外部 XML 文件:数据库映射被定义为一组 XML 映射文件,并且在启动时进行加载。     在最近

一个人有了信仰,不管成不成功,至少不会迷茫。 1万+

hibernate mysql annotation_Hibernate Annotation (Hibernate 注解)

说明文档:下载:hibernate annotation 3.4.0 GA得到:hibernate-annotations.jarhibernate-commons-annotation.jarejb3-persistence.jar数据库:mysqlcategory表:id,name,description idproduct表:id,name ,price, description...

weixin_30902943的博客 89

Hibernate基于注解annotation的配置

Annotation在框架中是越来越受欢迎了,因为annotation的配置比起XML的配置来说方便了很多,不需要大量的XML来书写,方便简单了很多,只要几个annotation的配置,就可以完成我们以前需要书写的大量的XML文件。当然annotation的配置也有缺陷的,那就是annotation一般都是配置在代码中的,如果要修改的话,需要动源代码,丧失了灵活性,违背了OCP(增加开放...

awv94517的博客 341

hibernate注解annotation入门

前面的文章示例中我们写了实体类之后,都会写一个对应的*.hbm.xml配置文件,这种方式比较复杂,今天我们就来简单了解下使用注解annotation来替代配置文件的方法。 新建一个java项目,结构如下: Book实体类,在实体类中使用注解,代码如下: package com.test.pojo; import java.util.Date; import javax.persist

想念的专栏 459

Hibernate注解-annotation

Hibernate注解-annotation 文章目录Hibernate注解-annotation常用的注解注解编写的位置注解实现单表1、编写实体类2、编写主配置文件3、测试 在Hibernate中,通常配置对象关系映射的方式有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,俗话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,annotation的方式可以更简介,使...

ch19940812的博客 267

第五节 基于Annotation注解的Hibernate关联映射

基于Annotation注解的Hibernate关联映射 一对一关联映射 参考一对多关联映射 一对多关联映射 Department.java package cn.edu.scnu.annotationcurd.entity; import org.hibernate.annotations.GenericGenerator; import javax.persisten...

江城子_Lay的博客 335

hibernate annotation注解方式来处理映射关系

这位仁兄总结的不错: hibernate annotation注解方式来处理映射关系

longsq602的专栏 291

Hibernate or JPA Annotation中BLOB、CLOB注解写法

BLOB和CLOB都是大字段类型,BLOB是按二进制字节码来存储的。而CLOB是能够直接存储字符串的。 在hibernate or JPA Annotation中,实体BLOB、CLOB类型的注解与普通的实体属性有些不同,详细操作例如以下:   BLOB类型,类型声明为byte[]:   private byte[] content;   注解:   @Lo...

weixin_30663471的博客 149

Hibernate的Annotation注解

当项目变得比较大的时候,如何还使用hbm.xml文件来配置Hibernate实体就会变得比较复杂。这里Hibernate提供了Annotation注解方式,使得Hibernate的映射文件变得很方便管理了。       这里简单介绍Hibernate的Annotation注解 一、声明实体       @Entity       对实体注释。任何Hibernate映射对

刘霖晋 博客园 360
上一篇: eclipse, Log4j配置(真心的详细~)
下一篇: Java的反射机制浅谈
鹿晗的晗
博客等级 码龄16年 22粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值