我有一个使用 JPA 的 JavaEE 项目。由于 JPA 对创建视图的限制,我使用以下代码发送纯 SQL 语句来创建视图。该代码有效,但提交后在数据库中存在一个表而不是视图。从 netbeans IDE 中执行的相同 SQL 语句会创建正确的结果。为什么要创建表而不是视图?
@Startup
@Stateless
public class Trans {
@PersistenceContext
EntityManager em;
InitialContext ctx;
javax.sql.DataSource ds;
public void sqlTest() {
try {
ctx = new InitialContext();
ds = (DataSource) ctx.lookup("jdbc/INCP");
Connection connection;
connection = ds.getConnection("incp_schema", "123");
connection.prepareCall("CREATE VIEW \"SCHEMA\".LOGIN_VIEW AS
SELECT USERNAME, PASSWORDHASH, GROUPNAME
FROM USERTABLE, GROUPTABLE
WHERE GROUPTABLE.ID=USERTABLE.GROUPTABLE_ID");
connection.createStatement();
connection.commit();
} catch (NamingException | SQLException ex) {
Logger.getLogger(Trans.class.getName()).log(Level.SEVERE, null, ex);
}
}
}