-
Hibernate怎样使用Annotation映射视图0
最近的项目中有几种用户,用户的字段差别极大,只有id、username、password、userType、name等几个相同的字段,现想做单点登录,采用视图方式,现在针对上面几个字段创建了一个普通视图,命名为View_User,没有主键。
然后用MyEclipse的反射工程生成Annotation配置的实体类,共生成两个实体类,如下:
ViewUser类
package com.ninemax.cul.user.entity; import javax.persistence.AttributeOverride; import javax.persistence.AttributeOverrides; import javax.persistence.Column; import javax.persistence.EmbeddedId; import javax.persistence.Entity; import javax.persistence.Table; /** * ViewUser entity. @author MyEclipse Persistence Tools */ @Entity @Table(name = "VIEW_USER") public class ViewUser implements java.io.Serializable { // Fields private ViewUserId id; // Constructors /** default constructor */ public ViewUser() { } /** full constructor */ public ViewUser(ViewUserId id) { this.id = id; } // Property accessors @EmbeddedId @AttributeOverrides({ @AttributeOverride(name = "id", column = @Column(name = "ID", length = 50)), @AttributeOverride(name = "username", column = @Column(name = "USERNAME", length = 32)), @AttributeOverride(name = "password", column = @Column(name = "PASSWORD", length = 32)), @AttributeOverride(name = "userType", column = @Column(name = "USER_TYPE")), @AttributeOverride(name = "name", column = @Column(name = "NAME", length = 65536)), @AttributeOverride(name = "isWorkFlag", column = @Column(name = "IS_WORK_FLAG")) }) public ViewUserId getId() { return this.id; } public void setId(ViewUserId id) { this.id = id; } }
另外一个类是ViewUserId类:
package com.ninemax.cul.user.entity; import javax.persistence.Column; import javax.persistence.Embeddable; /** * ViewUserId entity. @author MyEclipse Persistence Tools */ @Embeddable public class ViewUserId implements java.io.Serializable { // Fields private String id; private String username; private String password; private Integer userType; private String name; private Boolean isWorkFlag; // Constructors /** default constructor */ public ViewUserId() { } /** full constructor */ public ViewUserId(String id, String username, String password, Integer userType, String name, Boolean isWorkFlag) { this.id = id; this.username = username; this.password = password; this.userType = userType; this.name = name; this.isWorkFlag = isWorkFlag; } // Property accessors @Column(name = "ID", length = 50) public String getId() { return this.id; } public void setId(String id) { this.id = id; } @Column(name = "USERNAME", length = 32) public String getUsername() { return this.username; } public void setUsername(String username) { this.username = username; } @Column(name = "PASSWORD", length = 32) public String getPassword() { return this.password; } public void setPassword(String password) { this.password = password; } @Column(name = "USER_TYPE") public Integer getUserType() { return this.userType; } public void setUserType(Integer userType) { this.userType = userType; } @Column(name = "NAME", length = 65536) public String getName() { return this.name; } public void setName(String name) { this.name = name; } @Column(name = "IS_WORK_FLAG") public Boolean getIsWorkFlag() { return this.isWorkFlag; } public void setIsWorkFlag(Boolean isWorkFlag) { this.isWorkFlag = isWorkFlag; } public boolean equals(Object other) { // 省略 } public int hashCode() { // 省略 } }
其实这样程序是可以运行的,问题在于视图中的name是可以为空的,在name为空时Hibernate加载不上来数据(为null),请问怎样才能让Hibernate将含有null字段值的记录也加载上来?
网上有人介绍XML配置的解决方式,但我经验不足,没有参照着将Annotation下的解决办法找到,请各位指点一下,谢谢!
2012年8月24日 16:21
相关推荐
5. **整合Hibernate**:在实体类上使用@Entity,属性上使用@Column等注解,定义映射关系;在DAO接口上使用@Repository,利用Spring的代理机制实现事务控制。 通过这样的整合,开发者可以利用SpringMVC处理HTTP请求...
Spring是一个全面的后端开发框架,提供依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等特性,而Hibernate则是一个强大的ORM(对象关系映射)工具,用于简化数据库操作。当我们将这两个框架整合在一起时,...
Hibernate3则是一个对象关系映射(ORM)框架,用于处理数据库操作。它简化了Java应用与数据库之间的交互,使得开发者可以使用Java对象来操作数据,而无需编写大量的SQL语句。Hibernate3支持注解配置,可以在实体类上...
使用Hibernate,开发人员可以通过对象关系映射(ORM)将Java对象与数据库表进行关联。通过注解,如@Entity、@Table、@Id等,可以在Java类上定义数据库映射。Hibernate支持事务管理、查询语言(HQL)和Criteria API,...
在本篇文章中,我们将详细探讨如何将Spring MVC与Hibernate结合,并利用注解(Annotation)进行配置。 首先,让我们了解这两个框架的基本概念。Spring MVC是Spring框架的一部分,它是一个用于构建Web应用的模型-...
4. 配置Hibernate:在hibernate.cfg.xml中设置数据库连接信息,实体类上使用注解进行数据库映射。 5. 整合Struts2和Spring:通过Struts2的Spring插件,使得Action可以从Spring容器中获取依赖的Service和DAO。 6. ...
这个项目中,Hibernate作为ORM(对象关系映射)工具被用来处理数据库操作,而使用了注解方式来配置Hibernate,这是一种更加简洁和灵活的配置方法。 1. **Struts**:Struts 是一个MVC(Model-View-Controller)框架...
4. 定义实体类并使用Hibernate注解,配置数据库表的映射。 5. 编写DAO接口和实现,使用Hibernate的Session进行数据库操作。 6. 创建服务层接口和实现,注入DAO,提供业务逻辑。 7. 在Struts2的动作类中注入服务层,...
在这个特定的案例中,"Struts+Hibernate(annotation)"的组合被用来实现一个记事本功能,这涉及到前端交互、后端数据处理以及持久化层的设计。 Struts是一个基于MVC(Model-View-Controller)设计模式的开源框架,...
- **配置Hibernate**:配置Hibernate的SessionFactory,使用@Entity注解标记实体类,@Table注解映射数据库表,@Id注解标识主键,以及其他属性注解如@Column。 - **配置Struts2**:在Struts2的配置文件中,定义...
Hibernate3.3 是一个流行的 Java ORM(对象关系映射)框架,它使得开发者可以使用面向对象的方式来操作数据库。在 Hibernate3.3 中,注解被引入来替代传统的 XML 配置,例如 `@Entity` 表示一个数据库表,`@Id` 定义...
Spring MVC和Hibernate是Java开发中两个非常重要的框架,它们分别负责Web应用的模型-视图-控制器(MVC)架构和对象关系映射(ORM)。本教程将详细讲解如何将这两个框架结合使用,并通过注解简化配置过程。 首先,...
- **Hibernate+Annotation+文档.pdf**:详细介绍了如何使用Hibernate的注解进行对象关系映射。 这些资源可以帮助开发者快速理解和掌握这些框架,提高开发效率。同时,"spring注解的学习.pdf"这样的文档可能包含了...
Spring是一个全面的后端开发框架,提供依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等特性,而Hibernate则是一个强大的对象关系映射(ORM)工具,简化了Java应用程序对数据库的操作。当结合使用时,...