我的模型类中有一个自动生成的序列,如下所示:
@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();
}