1数据源: 详细定义
<jndi-name>MSSQLDS</jndi-name>
<connection-url>jdbc:sqlserver://localhost:1433;DatabaseName=EJB</connection-url>
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
<user-name>sa</user-name>
<password>123456</password>
2 配置实体bean
- @SuppressWarnings("serial")
- @Entity
- @Table(name="person")
- public class Person implements Serializable{
- private Integer id;
- private String name;
- public Person(){
- }
- public Person(String name){
- this.name = name;
- }
- @Id @Column(name="id") @GeneratedValue(strategy=GenerationType.IDENTITY)
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- @Column(name="name", length=20, nullable=false)
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((id == null) ? 0 : id.hashCode());
- return result;
- }
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- final Person other = (Person) obj;
- if (id == null) {
- if (other.id != null)
- return false;
- } else if (!id.equals(other.id))
- return false;
- return true;
- }
- }
3 在jar META-INF 创建persistence.xml
- <?xml version="1.0" encoding="UTF-8" ?>
- <persistence xmlns="http://java.sun.com/xml/ns/persistence"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
- <persistence-unit name="itcast" transaction-type="JTA">
- <jta-data-source>java:MSSQLDS</jta-data-source>
- <properties>
- <property name="hibernate.hbm2ddl.auto" value="update"/>
- <property name="hibernate.show_sql" value="true"/>
- <property name="hibernate.format_sql" value="true"/>
- </properties>
- </persistence-unit>
- </persistence>
4 dao
- @Stateless
- @Remote(PersonService.class)
- public class PersonServiceBean implements PersonService{
- @PersistenceContext(unitName="itcast") EntityManager em;
- public void delete(Integer personId) {
- em.remove(em.getReference(Person.class, personId));
- //返回而 代理对象
- }
- public Person getPerson(Integer personId) {
- return em.find(Person.class, personId);
- }
- @SuppressWarnings("unchecked")
- public List<Person> getPersons() {
- return (List<Person>) em.createQuery(" select p from Person p ").getResultList();
- }
- public void save(Person person) {
- em.persist(person);
- }
- public void update(Person person) {
- em.merge(person);
- }
- }
在dao 中:
@PersistenceContext(unitName="foshanshop") protected EntityManager em;
属性:
@Transient 实体bean默认全体成员都会持久, 该注释表示不持久某项
@Enumerated(EnumType.STRING)
public CommentType getType(){
}
public enum CommentType{
NEWS{public String getName(){reutrn "新闻";}},
PRODUCT{public String getName(){reutrn "产品";}};
public abstract String getName();
}
@Lob 映射Blob Clob
@Basic(fetch=FetchType.LAZY) 加在lob大文件时 延迟加载
@Temporal 指定时间类型
@Embedded