今天看了下Hibernate的@Column注解
@Column(
name="columnName"; 1
boolean unique() default false; 2
boolean nullable() default true; 3
boolean insertable() default true; 4
boolean updatable() default true; 5
String columnDefinition() default ""; 6
String table() default ""; 7
int length() default 255; 8
int precision() default 0; 9
int scale() default 0; 10
)
除了7、9、10,其他都容易理解。
其中9和10是设置decimal的精度,开始定义了Float和Double类型的字段,然后在这两种类型的字段上使用@Column注解,结果9和10不起作用。最后发现在使用BigDecimal类型时,9和10才起作用。如果自己使用columnDefinition定义类型(@Column(columnDefinition="decimal")),则需要自己定义精度,9和10是不起作用的,同理,使用Double和Float类型时MySQL中生成的是double和float,于是也不会起作用。而7要和@SecondaryTable注解一起使用。
@Entity @Table(name = "BSCCPUBURDEN") public class BSCCPUBurden implements Serializable { private static final long serialVersionUID = 810923802091774744L; private String id; /** * 起始时间 */ private Date startDate; /** * 周期 */ private String period; /** * 对象名称 */ private String objName; /** * CPU占用率平均值 */ private BigDecimal cpuOccupancyAvg; /** * CPU占用率最大值 */ private BigDecimal cpuOccupancyMax; @Id @Column(name = "ID_") public String getId() { return id; } public void setId(String id) { this.id = id; } @Temporal(TemporalType.TIMESTAMP) @Column(name = "STARTDATE_") public Date getStartDate() { return startDate; } public void setStartDate(Date startDate) { this.startDate = startDate; } @Column(name = "PERIOD_") public String getPeriod() { return period; } public void setPeriod(String period) { this.period = period; } @Column(name = "OBJNAME_") public String getObjName() { return objName; } public void setObjName(String objName) { this.objName = objName; } @Column(name = "CPUOCCUPANCYAVG_", precision = 10 , scale = 3) public BigDecimal getCpuOccupancyAvg() { return cpuOccupancyAvg; } public void setCpuOccupancyAvg(BigDecimal cpuOccupancyAvg) { this.cpuOccupancyAvg = cpuOccupancyAvg; } @Column(name = "CPUOCCUPANCYMAX_", precision = 10, scale = 3) public BigDecimal getCpuOccupancyMax() { return cpuOccupancyMax; } public void setCpuOccupancyMax(BigDecimal cpuOccupancyMax) { this.cpuOccupancyMax = cpuOccupancyMax; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((id == null) ? 0 : id.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; BSCCPUBurden other = (BSCCPUBurden) obj; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; return true; } }
相关推荐
### EJB2.0与EJB3.0的主要区别 #### 一、简介 企业Java Beans(EJB)是Java平台为企业级应用提供的一种组件模型。随着技术的发展,EJB经历了多个版本的迭代,其中EJB 2.0和EJB 3.0是两个重要的里程碑版本。本文将...
EJB(Enterprise JavaBeans)3.0是Java企业级应用开发的一个重要标准,它定义了如何在Java EE(Java Platform, Enterprise Edition)环境中构建可复用的、组件化的服务器端应用程序。EJB 3.0的发布极大地简化了EJB的...
在这个"ejb3.0开发实例(java工程)"中,我们将深入探讨EJB 3.0的主要特性和开发实践。 1. **注解驱动**:EJB 3.0最大的变革之一就是大量使用注解(Annotation),减少了XML配置文件的使用。例如,@Stateless、@...
《精通EJB3.0》是一本深入探讨企业级JavaBeans(EJB)3.0技术的专业书籍,由Rima Patel、Sriganesh、Gerald Brose和Micah Silverman共同编写,由Wiley Publishing出版。该书为读者提供了全面且深入的EJB3.0知识体系...
EJB 3.0中的容器自动处理事务管理,开发者只需通过设置事务属性(如`@TransactionAttribute`)来定义事务边界。这减少了事务管理的复杂性,让开发者更专注于业务逻辑。 **7. 异步处理** EJB 3.0支持异步方法调用,...
最后,《EJB3.0开发Session Bean.pdf》主要探讨了无状态和有状态session bean。无状态session bean不保留任何客户端特定的信息,适合执行无关联的业务逻辑;而有状态session bean则可以记住客户端的上下文信息,适用...
总的来说,"EJB3.0源代码"的压缩包很可能包含了使用EJB 3.0规范编写的各类Bean的源码,包括实体Bean、无状态会话Bean、有状态会话Bean和消息驱动Bean,以及相关的配置文件。通过分析这些源代码,我们可以深入理解EJB...
EJB3.0是EJB规范的一个重要版本,它在EJB2.x的基础上进行了大量简化,提高了开发效率,并引入了注解驱动的开发方式,使得EJB更易于理解和使用。 在EJB3.0中,主要包含以下关键知识点: 1. **实体Bean(Entity ...
《EJB3.0入门经典》内容丰富,讲解由浅入深,全面系统,在讲解EJB 3.0最新开发技术的同时,精心设计了与章节内容相关的实例,给出了开发过程中运用到的技巧和注意事项,相信读者一定能从中获益。
"李腾飞EJB3.0 源码 源代码"可能包含的是李腾飞教授或团队关于EJB 3.0技术的实践示例或教学资源。通过分析这些源码,开发者可以深入理解EJB 3.0的实现细节,例如如何使用注解定义Bean、如何处理持久化、如何进行依赖...
EJB3.0允许在不同应用服务器上运行,如JBoss的Hibernate实现和Oracle的TopLink实现。即使EJB3.0规范尚未最终确定,开发者仍可以通过嵌入式EJB3.0产品获得支持。 - 相反,Spring是一个非标准的开源解决方案,使用...
4. **异步方法调用:**在EJB3.0中,可以通过简单的注解来实现异步方法调用,提高了系统的响应性和可扩展性。 5. **简化生命周期管理:**EJB3.0提供了更为简单直观的方式来管理组件的生命周期,减少了代码量。 #### ...
在"**EJB3.0+JBOSS+MyEclipse初体验(完整代码和过程).txt**"文件中,你将找到一个完整的示例,涵盖了上述所有步骤,包括具体的代码片段和执行过程,这对于初学者来说是一个很好的起点,可以快速理解并实践EJB 3.0在...
7. **查询语言(Query Language)**:Java Persistence Query Language (JPQL) 是EJB 3.0中用于检索和操作数据库的语句,类似于SQL,但操作的是对象而非记录。 8. **生命周期方法(Lifecycle Callbacks)**:开发者可以...
在"ejb3.0入门经典教程-source"这个压缩包中,包含了书中各个章节的示例代码,覆盖了EJB 3.0的各个方面,例如实体Bean的创建、会话Bean的使用、事务管理、安全性设置以及JPA的持久化操作等。这些源码对于初学者来说...
EJB(Enterprise JavaBeans)3.0规范是Java EE(Enterprise Edition)平台中核心的组件模型,用于构建可扩展、安全且易于管理的企业级应用程序。EJB 3.0是EJB规范的一个重要里程碑,因为它引入了许多重大的改进,...
**EJB3.0实例教程及源代码** 本教程专注于企业级JavaBeans(EJB)3.0技术的实践应用,由黎活明提供。EJB是Java平台上的一个核心组件,用于构建可扩展的、可靠的、安全的分布式应用程序。EJB 3.0是EJB规范的一个重要...
罗时飞精通EJB3.0.zip.001 罗时飞精通EJB3.0.zip.002 罗时飞精通EJB3.0.zip.003 《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和...
**电子书-EJB3.0实例教程** EJB(Enterprise JavaBeans)是Java平台企业版(Java EE)的一部分,主要用于构建可复用的、模块化的、面向服务的企业级应用程序。EJB 3.0是其重要的一个版本,它在EJB 2.x的基础上进行...