In below java entity bean class, we are using @Id and other annotations. They are from the javax.persistence.\* package.

I read the SO and other forums, every one say that, JPA is specification/rule set and Hibernate is one of the JPA implementations.If that is the case, how come JPA is providing the these classes/interfaces such as @Id (Generator interface). 

If I understand correctly, JPA itself provides the capability to support ORM without using Hibernate?

also, I would like to know
1) the Hibernate annotation classes corresponding to these JPA annotations -@Id.
2) for javax.persistence.\* package, do we need use Hibernate-Annotations jar? or they are from JPA specific jar, if so please help me understand the package name.

```
import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "employee")
public class Employee implements Serializable {
  public Employee() {

  }
  @Id
  @Column(name = "id")
  Integer id;

  @Column(name = "name")
  String name;

  public Integer getId() {
  return id;
  }

  public void setId(Integer id) {
  this.id = id;
  }

  public String getName() {
  return name;
  }

  public void setName(String name) {
  this.name = name;
  }

} 

```