`

事实证明hibernate中@Column注解只有在建表时有用

阅读更多
刚做了如下实验
实验1:
新建people类,并用hibernate生成表
@Entity
public class People {
	@Id
	@GeneratedValue
	private int id;
	private String name;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}

在数据库中将name字段的长度改为3再向数据库中插入一条记录
public class Test {
	public static void main(String[] args) {

		Configuration cfg = new AnnotationConfiguration().configure();
//		new SchemaExport(cfg).create(false, true);
		
		
		People p=new People();
		p.setName("fhqiwcw");
		
		HibernateUtil helper=new HibernateUtil();
		Session session=helper.getSession();
		session.beginTransaction();
		session.save(p);
		session.getTransaction().commit();

	}
}

提示:
Data truncation: Data too long for column 'name' at row 1

这次在程序中注解将name的长度设为3,数据库中的设为255
@Entity
public class People {
	@Id
	@GeneratedValue
	private int id;
	Column(length = 3)//在这里将长度设为3
	private String name;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}

正常执行,查看数据库记录已经添加成功。
由此看来@column的注解只是在建表的时候起作用
所以以后在做项目的时候可可以不用@Column注解字符长度或者是not null,这些在用hibernate生成表后直接在数据中改方便很多(当然也可以先有表再写hibernate)
分享到:
评论

相关推荐

    HIBERNATE:Hibernate 学习一--注解方式自动建表

    在Java编程中,注解(Annotation)是一种元数据,它提供了在代码中插入信息的方式,这些信息可以被编译器或运行时环境用来执行某些操作。在Hibernate中,注解用于将Java类与数据库表关联,以及将类的属性与表的列...

    JPA注解 和hibernate 建表

    JPA注解和Hibernate建表 一、JPA概述 Java Persistence API(JPA)是Sun官方提出的Java持久化规范,它只是一个规范不是一个产品。JPA的主要目标是提供一种简洁、易用的方式来访问、操作和管理Java应用程序中的数据...

    基于java访问mysql数据库一

    兼容hibernate @Table、@Column、@Id、@Transient注解 兼容hibernate @GeneratedValue注解设置自增 兼容swagger @ApiModel、@ApiModelProperty注解设置(表、字段)备注 字段上没有任何注解,支持属性名转数据库列名...

    Hibernate动态建表

    "Hibernate动态建表"指的是在应用运行时根据实体类自动生成对应的数据库表结构,这种特性在开发过程中特别有用,尤其是当数据模型频繁变化或者需要快速原型设计时。 **动态表映射原理** Hibernate的动态建表功能...

    Hibernate建表用到的jar包

    在实际建表操作中,开发者首先需要定义实体类(Entity),并使用Hibernate注解(如@Entity、@Table、@Column等)来指定数据库映射关系。接着,配置Hibernate的SessionFactory,最后通过Session对象执行DDL(Data ...

    自动在数据库中建成表(Hibernate)

    4. **配置自动建表**:在Hibernate的配置文件中,启用`hbm2ddl.auto`属性,如设置为`create`或`create-drop`,Hibernate将在启动时创建表(或每次启动时删除并重新创建)。如果希望更新已有表结构,可以设置为`...

    Hibernate自动生成表demo

    总的来说,通过使用Hibernate的注解和自动建表功能,我们可以轻松地在Java应用中建立数据库模型,并在运行时自动创建数据库表。这极大地提高了开发效率,降低了出错的可能性,并使得数据库与Java代码之间的关系更加...

    hibernate学习笔记

    - 字段名与属性名不同时,使用@Column注解或XML指定映射。 四、对象映射 1. XML映射: - `Student.hbm.xml`和`Teacher.hbm.xml`分别定义了Student和Teacher类与数据库表的映射。 - `…/>`用于添加映射文件。 2....

    java模拟hibernate实现

    在本项目中,注解可能被用来标记实体类及其属性,模拟Hibernate的@Entity和@Column等注解,以便自动识别哪些类和字段对应数据库表和列。 3. **JDBC封装**: JDBC(Java Database Connectivity)是Java连接数据库的...

    hibernate根据类生成表

    在Java的持久化框架中,Hibernate是一个非常流行的ORM(对象关系映射)工具,它能够将Java类映射到数据库中的表,实现数据的透明访问。"hibernate根据类生成表"这一主题主要涉及Hibernate的自动建表功能,即...

    SSH(spring+springmvc+hibernate+mysql)入门实例

    在本实例中,我们将使用全注解的方式,通过@Entity、@Table、@Column等注解来定义实体类,省去了传统的Hibernate XML配置文件。Hibernate的Session接口和Criteria API可以方便地进行数据的增删改查操作。此外,...

    附件Hibernate程序

    接着,他们会定义Java实体类,这些类代表了数据库中的表,并使用Hibernate的注解(如`@Entity`、`@Table`、`@Column`等)来描述它们与数据库表的关系。实体类的实例可以通过Hibernate的Session接口进行持久化操作,...

    java实体转mysql建表语句

    在Java开发中,将Java实体类转换为MySQL数据库的建表语句是一项常见的任务,它有助于快速构建数据库模型,尤其在使用ORM(对象关系映射)框架如Hibernate、MyBatis时更为便捷。本篇文章将深入探讨这个过程,并提供...

    s2sh注解方式整合demo源码

    在整合S2SH时,数据库配置通常在Spring的配置文件中完成,通过DataSource和SessionFactory的配置,使Hibernate能够与数据库建立连接并执行CRUD操作。 **标签** "Struts2 Spring Hibernate demo 注解" 指出了这个...

    springboot+mybatis通过实体类自动生成数据库表的方法

    在实体类中,我们还需要使用@Column 注解来标注字段名。 在配置文件中,我们需要配置数据源、MyBatis 的会话工厂和事务管理器。我们可以使用 Druid 数据源来管理数据库连接,并使用 MyBatis 的 ...

    Java根据实体创建Mysql数据库表

    这种做法在快速开发和迭代中非常有用,避免了手动编写SQL建表语句的工作,同时使得代码和数据模型保持同步。记住,尽管ORM带来了便利,但在处理复杂的SQL查询或性能调优时,可能需要直接编写SQL语句。在享受ORM带来...

    hibernate全面精品总结

    在 Hibernate 中,对象的 ID(主键)可以通过多种策略生成,包括: 1. **Identity**:依赖于数据库的自动增长机制,如 MySQL 的 AUTO_INCREMENT。 2. **Sequence**:使用数据库序列来生成 ID,适用于 Oracle 和 ...

    hibernate学习讲义.rar

    2. **注解映射**: 使用Hibernate注解(如`@Entity`、`@Table`、`@Column`等)来标记实体类和属性,简化配置。 3. **主键生成策略**: 设置主键生成策略,如`@GeneratedValue`配合`GenerationType.AUTO`,让Hibernate...

    struts2+hibernate的一个小实例

    4. **实体类(Entities)**:创建Java类来表示数据库中的表,使用Hibernate的注解(如`@Entity`, `@Table`, `@Id`, `@Column`等)来标记这些类和字段,以便Hibernate自动管理它们。 5. **DAO(数据访问对象)**:...

Global site tag (gtag.js) - Google Analytics