Using System MilliSeconds As Key : Primary Key « JPA « Java






Using System MilliSeconds As Key


File: Message.java


import java.util.Date;

import javax.persistence.Basic;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Message {
  @Id
  private long id = System.currentTimeMillis();

  @Basic
  private String message;

  @Basic
  private Date created = new Date();

  public Message() {
  }

  public Message(String msg) {
    message = msg;
  }

  public void setId(long val) {
    id = val;
  }

  public long getId() {
    return id;
  }

  public void setMessage(String msg) {
    message = msg;
  }

  public String getMessage() {
    return message;
  }

  public void setCreated(Date date) {
    created = date;
  }

  public Date getCreated() {
    return created;
  }
}


File: ProfessorService.java

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

public class ProfessorService {
  protected EntityManager em;

  public ProfessorService(EntityManager em) {
    this.em = em;
  }

  public void messageCreateAndList() {
    em.persist(new Message("Hello Persistence!"));
    Query q = em.createQuery("select m from Message m");

    for (Message m : (List<Message>) q.getResultList()) {
        System.out.println(m.getMessage()
            + " (created on: " + m.getCreated() + ")"); 
    }
  }

}


File: JPAUtil.java

import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

public class JPAUtil {
  Statement st;
  
  public JPAUtil() throws Exception{
    Class.forName("org.hsqldb.jdbcDriver");
    System.out.println("Driver Loaded.");
    String url = "jdbc:hsqldb:data/tutorial";

    Connection conn = DriverManager.getConnection(url, "sa", "");
    System.out.println("Got Connection.");
    st = conn.createStatement();
  }
  public void executeSQLCommand(String sql) throws Exception {
    st.executeUpdate(sql);
  }
  public void checkData(String sql) throws Exception {
    ResultSet rs = st.executeQuery(sql);
    ResultSetMetaData metadata = rs.getMetaData();

    for (int i = 0; i < metadata.getColumnCount(); i++) {
      System.out.print("\t"+ metadata.getColumnLabel(i + 1)); 
    }
    System.out.println("\n----------------------------------");

    while (rs.next()) {
      for (int i = 0; i < metadata.getColumnCount(); i++) {
        Object value = rs.getObject(i + 1);
        if (value == null) {
          System.out.print("\t       ");
        } else {
          System.out.print("\t"+value.toString().trim());
        }
      }
      System.out.println("");
    }
  }
}


File: Main.java

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class Main {
  public static void main(String[] a) throws Exception {
    JPAUtil util = new JPAUtil();

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProfessorService");
    EntityManager em = emf.createEntityManager();
    ProfessorService service = new ProfessorService(em);

    em.getTransaction().begin();


    service.messageCreateAndList();
    
    util.checkData("select * from Message");

    em.getTransaction().commit();
    em.close();
    emf.close();
  }
}




File: persistence.xml

<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" version="1.0">
  <persistence-unit name="JPAService" transaction-type="RESOURCE_LOCAL">
    <properties>
      <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
      <property name="hibernate.connection.username" value="sa"/>
      <property name="hibernate.connection.password" value=""/>
      <property name="hibernate.connection.url" value="jdbc:hsqldb:data/tutorial"/>
    </properties>
  </persistence-unit>
</persistence>
           
       








JPA-UsingSystemMiliSecondsAsKey.zip( 5,333 k)

Related examples in the same category

1.Use UUID As Primary Key
2.Using Primary Key Column as Joined Column
3.Set Primary Key Joined Column For Secondary Table
4.Set IdClass for Compound Key
5.Set Primary Key By Yourself
6.Sequence Id Generation
7.Relationship On Id
8.Not Nullable ID
9.Mark Entity ID As Generated Value From Table
10.JPA can Create Sequence Table For You
11.Define And Use Compound Primary Key