0 0

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

1个答案 按时间排序 按投票排序

0 0

采纳的答案

是为null的显示为“”吗? 还是?


如果是为null的显示为“”,可以:
用公式 @Formula(value="case username is null then '' else username end")
删掉 @Column

2012年8月24日 16:27

相关推荐

    SpringMVC Spring Hibernate 框架整合 Annotation Maven Project

    5. **整合Hibernate**:在实体类上使用@Entity,属性上使用@Column等注解,定义映射关系;在DAO接口上使用@Repository,利用Spring的代理机制实现事务控制。 通过这样的整合,开发者可以利用SpringMVC处理HTTP请求...

    完整版spring hibernate整合采用annotation

    Spring是一个全面的后端开发框架,提供依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等特性,而Hibernate则是一个强大的ORM(对象关系映射)工具,用于简化数据库操作。当我们将这两个框架整合在一起时,...

    struts2 hibernate3 spring2.5 annotation 整合

    Hibernate3则是一个对象关系映射(ORM)框架,用于处理数据库操作。它简化了Java应用与数据库之间的交互,使得开发者可以使用Java对象来操作数据,而无需编写大量的SQL语句。Hibernate3支持注解配置,可以在实体类上...

    SpringMVC+hibernate+velocity+Annotation

    使用Hibernate,开发人员可以通过对象关系映射(ORM)将Java对象与数据库表进行关联。通过注解,如@Entity、@Table、@Id等,可以在Java类上定义数据库映射。Hibernate支持事务管理、查询语言(HQL)和Criteria API,...

    springmvc + hibernate annotation 配置

    在本篇文章中,我们将详细探讨如何将Spring MVC与Hibernate结合,并利用注解(Annotation)进行配置。 首先,让我们了解这两个框架的基本概念。Spring MVC是Spring框架的一部分,它是一个用于构建Web应用的模型-...

    Struts2+Spring2.5+Hibernate3+annotation 整合程序

    4. 配置Hibernate:在hibernate.cfg.xml中设置数据库连接信息,实体类上使用注解进行数据库映射。 5. 整合Struts2和Spring:通过Struts2的Spring插件,使得Action可以从Spring容器中获取依赖的Service和DAO。 6. ...

    java SSH项目 hibernate annotation

    这个项目中,Hibernate作为ORM(对象关系映射)工具被用来处理数据库操作,而使用了注解方式来配置Hibernate,这是一种更加简洁和灵活的配置方法。 1. **Struts**:Struts 是一个MVC(Model-View-Controller)框架...

    Struts2 Spring Hibernate 框架整合 Annotation Maven project

    4. 定义实体类并使用Hibernate注解,配置数据库表的映射。 5. 编写DAO接口和实现,使用Hibernate的Session进行数据库操作。 6. 创建服务层接口和实现,注入DAO,提供业务逻辑。 7. 在Struts2的动作类中注入服务层,...

    Struts+Hibernate(annotation)实现记事本功能

    在这个特定的案例中,"Struts+Hibernate(annotation)"的组合被用来实现一个记事本功能,这涉及到前端交互、后端数据处理以及持久化层的设计。 Struts是一个基于MVC(Model-View-Controller)设计模式的开源框架,...

    struts2+spring2+hibernate3 Annotation的整合

    - **配置Hibernate**:配置Hibernate的SessionFactory,使用@Entity注解标记实体类,@Table注解映射数据库表,@Id注解标识主键,以及其他属性注解如@Column。 - **配置Struts2**:在Struts2的配置文件中,定义...

    struts1.3+spring2.5+hibernate3.3 组合开发 annotation实现

    Hibernate3.3 是一个流行的 Java ORM(对象关系映射)框架,它使得开发者可以使用面向对象的方式来操作数据库。在 Hibernate3.3 中,注解被引入来替代传统的 XML 配置,例如 `@Entity` 表示一个数据库表,`@Id` 定义...

    Spring MVC + Hibernate +Annotation

    Spring MVC和Hibernate是Java开发中两个非常重要的框架,它们分别负责Web应用的模型-视图-控制器(MVC)架构和对象关系映射(ORM)。本教程将详细讲解如何将这两个框架结合使用,并通过注解简化配置过程。 首先,...

    annotation hibernate struts spring springsecurity API中英文均有

    - **Hibernate+Annotation+文档.pdf**:详细介绍了如何使用Hibernate的注解进行对象关系映射。 这些资源可以帮助开发者快速理解和掌握这些框架,提高开发效率。同时,"spring注解的学习.pdf"这样的文档可能包含了...

    spring_hibernate_annotation的三种实现

    Spring是一个全面的后端开发框架,提供依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等特性,而Hibernate则是一个强大的对象关系映射(ORM)工具,简化了Java应用程序对数据库的操作。当结合使用时,...

Global site tag (gtag.js) - Google Analytics