今天看到了实体BEAN,(Entity Bean),在做对象和数据库表映射时候,发现一个问题,那就是我为一个字段指定了列名后,它仍然会生成一个和字段名一样的列,比如;
实体BEAN代码
-
-
-
-
-
-
-
-
-
- package lbf.demo.bean;
-
-
-
-
-
- import java.util.*;
- import javax.persistence.*;
- @Entity
- @Table(name="person")
- public class Person {
- private int id,age;
- private String name,sex;
- private Date birthday;
-
- public Person() {
- }
- @Id
- @GeneratedValue
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
- @Column(name="myAge",nullable=false,length=4)
- public int getAge() {
- return age;
- }
-
- public void setAge(int age) {
- this.age = age;
- }
- @Column(name="PersonName",nullable=false,length=32)
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
- @Column(name="mySex",nullable=false)
- public String getSex() {
- return sex;
- }
-
- public void setSex(String sex) {
- this.sex = sex;
- }
- @Column(name="myBirty",nullable=false)
- public Date getBirthday() {
- return birthday;
- }
-
- public void setBirthday(Date birthday) {
- this.birthday = birthday;
- }
-
- }
我在这里,除了主键ID没有指定列名外,其它四个属性我都有指定列名,当然这个列名和属性本不一样,可是当我布署了此EJB后,发现数据库里面我生成的表却多了几列和类属性同名的列.真是太奇怪了,它既生成我指定的列名为什么又要生成属性相同的列名呢,如果我不指定任何列名,那么数据库就会生成和我属性名一样的列.
上述生成的重复列,只是有三个会重复而已,而PersonName却只有一个,也就是说不会出现name列,但是为什么其它三个会生成age,birthday,sex这三列呢.此时它依然帮我生成了myAge,myBirth,mySex,并且这三列还可以为空,我不是指定了不可以为空的吗,可是age,birthday,sex,这三列却不可以为空,就好像我指定的属性是为它们指定的一样.
记下此问题,留给以后解决
刚才又改了一个程序,发现这样写可以让数据库生成我想生成的形式
新的代码 代码
-
-
-
-
-
-
-
-
-
- package lbf.demo.bean;
-
-
-
-
-
- import java.util.*;
- import javax.persistence.*;
- @Entity
- @Table(name="person")
- public class Person {
- private int id,age;
- private String name,sex;
- private Date birthday;
-
- public Person() {
- }
- @Id
- @GeneratedValue
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
- @Column(name="myAge",nullable=false,length=4)
- public int getAge() {
- return age;
- }
-
- public void setAge(int age) {
- this.age = age;
- }
- @Column(name="PersonName",nullable=false,length=32)
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
- @Column(name="mySex",nullable=false,length=32)
- public String getSex() {
- return sex;
- }
-
- public void setSex(String sex) {
- this.sex = sex;
- }
- @Column(name="myBirty",nullable=false,length=8)
- public Date getBirthday() {
- return birthday;
- }
-
- public void setBirthday(Date birthday) {
- this.birthday = birthday;
- }
-
- }
在这段代码里,我每次声明一样新的列名的时候都指定了是否可以非空,长度为多少,这我们在新建表的时候也必须指出的东西,所以我觉得以前的代码之所以会出错(其实不能叫出错,叫出乎意料)是因为我只是指定了列名,而没有指定其长度或者约束,也就是说我的定义不完全,所以系统不知道我想建什么样的列,于是就帮我建了两列,一列是我命名的,一例是以属性名命名的,呵呵,现在只能这么理解了.因为才刚刚接触到皮毛而已
分享到:
相关推荐
这份"J2EE学习笔记(J2ee初学者必备手册)"是为初学者量身定制的指导资料,旨在帮助新手快速掌握J2EE的核心概念和技术。 **J2EE架构与组件** J2EE架构基于分层设计,主要包含以下层次: 1. **客户端层**:用户...
**J2EE初学者课程概览** J2EE(Java 2 Platform, Enterprise Edition)是Java平台上用于构建企业级应用程序的框架。它提供了一个多层架构,支持分布式、可伸缩性和安全性的应用开发。本课程是专为J2EE初学者设计的...
### J2EE初学者需要注意的问题 #### 一、J2EE体系结构简介 J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems为解决企业级应用开发中遇到的复杂性和标准化问题而提出的一套解决方案。它基于Java技术...
**BBS系统与J2EE初学教程源码详解** J2EE(Java 2 Platform, Enterprise Edition)是一个用于开发企业级应用的平台,它提供了丰富的功能和组件,支持多层分布式架构,使得开发者能够构建可扩展且健壮的网络应用。本...
J2EE初学者需要理解的问题
**J2EE初学者开发文档** J2EE(Java 2 Platform, Enterprise Edition)是Java平台上用于构建企业级应用的框架,它为开发者提供了构建分布式、多层应用程序所需的全面服务。这个电子书开发文档旨在为初学者提供一个...
【J2EE初学学习教程】是一份针对Java企业级应用开发的学习资料,重点介绍了基于MVC模式的一体化开发过程。在这个过程中,UML(统一建模语言)被用来描述用户需求,进行对象导向的分析(OOA)和设计(OOD)。 1. **...
J2EE(Java 2 Platform, Enterprise Edition)是一个由SUN公司推出的用于构建企业级应用的Java...理解这些核心概念是J2EE初学者的基础,随着学习的深入,还需要掌握如何使用这些工具和技术来构建实际的企业级应用程序。
以下是对J2EE初学者需要理解的五个关键问题的详细解释: 1. **J2EE提出的背景**: 在企业级应用开发中,诸如数据库连接、邮件服务和事务处理等功能是常见的需求。为了避免重复开发这些模块导致的时间成本增加和...
### J2EE学习笔记(J2ee初学者必备手册) #### J2EE概览 J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems(现已被Oracle收购)为简化企业级应用开发而提出的一种规范标准。它基于Java SE平台,并在...
**J2EE初学者必看的基础知识电子课件** J2EE(Java 2 Platform, Enterprise Edition)是一种用于构建企业级分布式应用的平台,由Oracle公司维护。它为开发和部署多层、跨平台的应用程序提供了全面的框架。对于初学...
* simplejee 是很多例子的大杂烩,用来演示j2ee开发的常用技术。 * 包括jsp,servlet,html,javascript,css等,以及springmvc+jdbcTemplate和 struts2+hibernate+spring, struts2+ibatis+spring 实现的登陆,...
### J2EE初学者需要注意的问题 #### 一、J2EE提出的背景及重要性 ##### 企业级应用框架的需求 J2EE(Java 2 Platform, Enterprise Edition)最初是为了满足企业级应用的需求而诞生的。在传统的软件开发过程中,很...
2. **J2EE**: 虽然现在被称为Java EE,但J2EE是它的早期名称,代表Java 2 Platform, Enterprise Edition。它包括一套标准的API和服务,如Servlet、JSP、EJB等,用于开发可部署在服务器端的Web应用程序。 3. **JDBC*...
### JSP基础教程:j2ee初学者指南 #### JSP概念回顾与解析 JavaServer Pages(简称JSP)是一种动态网页技术标准,它在传统的HTML基础上嵌入了Java代码,使得网页具备了动态生成的能力。JSP由Sun Microsystems公司...