首页 > 代码库 > 使用Hibernate Annotations

使用Hibernate Annotations

这篇post承接上一篇,用来说明如何使用注解替代映射xml文件。使用注解会很方便,减少了元数据的行数,并且注解是类型安全的。如果注解就是你想从JPA中获得的唯一东西——即用注解取代XML,那么只需要进行如下改动:

主要的变动如下:


1.需要另外导入的包

hibernate/lib/jpa/

hibernate/lib/jpa-metamodel-generator/

里面的两个jar文件,用来支持注解映射


2.删掉映射xml文件,即Message.hbm.xml文件


3.使用注解映射Message类

package test.domainwithannotation;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

@Entity
public class Message {
	
	@Id @GeneratedValue
	@Column(name="MESSAGE_ID")
	private Long id;
	
	@Column(name="MESSAGE_TEXT")
	private String text;
	
	@ManyToOne(cascade=CascadeType.ALL)
	@JoinColumn(name="NEXT_MESSAGE_ID")
	private Message nextMessage;
	
	public Message(){
		
	}
	
	public Message(String text){
		this.text = text;
	}
	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getText() {
		return text;
	}
	public void setText(String text) {
		this.text = text;
	}
	public Message getNextMessage() {
		return nextMessage;
	}
	public void setNextMessage(Message nextMessage) {
		this.nextMessage = nextMessage;
	}
	
	
}

4.更改hibernate.cfg.xml文件中

将<mapping resource="test/domain/Message.hbm.xml" />

改为<mapping class="hello.Message" />