这篇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" />