使用Spring-Hibernate在jsp中的本机序列中的下一个值

时间:2015-11-04 01:28:46

标签: java spring hibernate jsp jpa

我的模型类中有一个自动生成的序列,如下所示:

@Entity
@Table(name="track")
@NamedQuery(name="track.findAll", query="SELECT t FROM Track t")
public class Track  {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(unique=true, nullable=false)
    private long id;
...

我想在" insert.jsp"中显示下一个值。 - 有点像这样:

<table>
    <form:form action="save.do" method="post" modelAttribute="track">
    <tr>
        <td>Track Id:</td>
        <td><form:input path="id" value="${track.getNext()}" readonly="true"/></td>    
    </tr>

{track.getNext()}截至目前尚无法运作。 做这个的最好方式是什么? 我尝试在我的模型类中使用这段代码。我的上下文查找 路径正在抛出错误。这是编写此代码的正确位置吗?如果没有,我应该把它放在哪里?上下文查找路径应该是什么?在我的代码中,它是Persistence.xml的路径。

  @PersistenceContext
  public static long getNext() throws Exception {
     Context initCtx = new InitialContext();
     javax.persistence.EntityManager em = (javax.persistence.EntityManager) 
                initCtx.lookup("src.main.resources");
     Query q = (Query) em.createNativeQuery("SELECT TRACK_ID_SEQ.nextval from DUAL");
    BigDecimal result=(BigDecimal)((javax.persistence.Query) q).getSingleResult();   
        return result.longValue();
    }

0 个答案:

没有答案