`

EJB3.0 @Column设置precision和scale转换ORACLE中的Number(x,y)

阅读更多

今天看了下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的区别

    ### EJB2.0与EJB3.0的主要区别 #### 一、简介 企业Java Beans(EJB)是Java平台为企业级应用提供的一种组件模型。随着技术的发展,EJB经历了多个版本的迭代,其中EJB 2.0和EJB 3.0是两个重要的里程碑版本。本文将...

    ejb3.0开发规范PDF

    EJB(Enterprise JavaBeans)3.0是Java企业级应用开发的一个重要标准,它定义了如何在Java EE(Java Platform, Enterprise Edition)环境中构建可复用的、组件化的服务器端应用程序。EJB 3.0的发布极大地简化了EJB的...

    ejb3.0开发实例(java工程)

    在这个"ejb3.0开发实例(java工程)"中,我们将深入探讨EJB 3.0的主要特性和开发实践。 1. **注解驱动**:EJB 3.0最大的变革之一就是大量使用注解(Annotation),减少了XML配置文件的使用。例如,@Stateless、@...

    精通EJB3.0 pdf

    《精通EJB3.0》是一本深入探讨企业级JavaBeans(EJB)3.0技术的专业书籍,由Rima Patel、Sriganesh、Gerald Brose和Micah Silverman共同编写,由Wiley Publishing出版。该书为读者提供了全面且深入的EJB3.0知识体系...

    EJB 3.0实例教程.pdf

    EJB 3.0中的容器自动处理事务管理,开发者只需通过设置事务属性(如`@TransactionAttribute`)来定义事务边界。这减少了事务管理的复杂性,让开发者更专注于业务逻辑。 **7. 异步处理** EJB 3.0支持异步方法调用,...

    ejb3.0入门图文教程

    最后,《EJB3.0开发Session Bean.pdf》主要探讨了无状态和有状态session bean。无状态session bean不保留任何客户端特定的信息,适合执行无关联的业务逻辑;而有状态session bean则可以记住客户端的上下文信息,适用...

    EJB3.0源代码

    总的来说,"EJB3.0源代码"的压缩包很可能包含了使用EJB 3.0规范编写的各类Bean的源码,包括实体Bean、无状态会话Bean、有状态会话Bean和消息驱动Bean,以及相关的配置文件。通过分析这些源代码,我们可以深入理解EJB...

    EJB3.0架包

    EJB3.0是EJB规范的一个重要版本,它在EJB2.x的基础上进行了大量简化,提高了开发效率,并引入了注解驱动的开发方式,使得EJB更易于理解和使用。 在EJB3.0中,主要包含以下关键知识点: 1. **实体Bean(Entity ...

    EJB3.0入门经典(PDF)

    《EJB3.0入门经典》内容丰富,讲解由浅入深,全面系统,在讲解EJB 3.0最新开发技术的同时,精心设计了与章节内容相关的实例,给出了开发过程中运用到的技巧和注意事项,相信读者一定能从中获益。

    李腾飞EJB3.0 源码 源代码

    "李腾飞EJB3.0 源码 源代码"可能包含的是李腾飞教授或团队关于EJB 3.0技术的实践示例或教学资源。通过分析这些源码,开发者可以深入理解EJB 3.0的实现细节,例如如何使用注解定义Bean、如何处理持久化、如何进行依赖...

    EJB3.0和Spring比较

    EJB3.0允许在不同应用服务器上运行,如JBoss的Hibernate实现和Oracle的TopLink实现。即使EJB3.0规范尚未最终确定,开发者仍可以通过嵌入式EJB3.0产品获得支持。 - 相反,Spring是一个非标准的开源解决方案,使用...

    Java之精通EJB3.0.pdf

    4. **异步方法调用:**在EJB3.0中,可以通过简单的注解来实现异步方法调用,提高了系统的响应性和可扩展性。 5. **简化生命周期管理:**EJB3.0提供了更为简单直观的方式来管理组件的生命周期,减少了代码量。 #### ...

    EJB3.0+JBOSS+MyEclipse初体验(完整代码和过程)

    在"**EJB3.0+JBOSS+MyEclipse初体验(完整代码和过程).txt**"文件中,你将找到一个完整的示例,涵盖了上述所有步骤,包括具体的代码片段和执行过程,这对于初学者来说是一个很好的起点,可以快速理解并实践EJB 3.0在...

    EJB3.0规范中文版

    7. **查询语言(Query Language)**:Java Persistence Query Language (JPQL) 是EJB 3.0中用于检索和操作数据库的语句,类似于SQL,但操作的是对象而非记录。 8. **生命周期方法(Lifecycle Callbacks)**:开发者可以...

    《EJB 3.0入门经典》 源码

    在"ejb3.0入门经典教程-source"这个压缩包中,包含了书中各个章节的示例代码,覆盖了EJB 3.0的各个方面,例如实体Bean的创建、会话Bean的使用、事务管理、安全性设置以及JPA的持久化操作等。这些源码对于初学者来说...

    EJB 3.0规范官方文档

    EJB(Enterprise JavaBeans)3.0规范是Java EE(Enterprise Edition)平台中核心的组件模型,用于构建可扩展、安全且易于管理的企业级应用程序。EJB 3.0是EJB规范的一个重要里程碑,因为它引入了许多重大的改进,...

    EJB3.0实例教程及源代码

    **EJB3.0实例教程及源代码** 本教程专注于企业级JavaBeans(EJB)3.0技术的实践应用,由黎活明提供。EJB是Java平台上的一个核心组件,用于构建可扩展的、可靠的、安全的分布式应用程序。EJB 3.0是EJB规范的一个重要...

    精通EJB3.0 中文版 3/3

    罗时飞精通EJB3.0.zip.001 罗时飞精通EJB3.0.zip.002 罗时飞精通EJB3.0.zip.003 《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和...

    电子书-EJB3.0实例教程

    **电子书-EJB3.0实例教程** EJB(Enterprise JavaBeans)是Java平台企业版(Java EE)的一部分,主要用于构建可复用的、模块化的、面向服务的企业级应用程序。EJB 3.0是其重要的一个版本,它在EJB 2.x的基础上进行...

Global site tag (gtag.js) - Google Analytics