我在我的应用程序中使用MSSQL临时表时出现问题,该表与OpenJPA连接到base。 这是一个创建表脚本,我用它来创建我的临时表
create table ##EXT_DATABASE_RESULTS (
ID bigint not null identity,
RESULT_KEY uniqueidentifier not null,
CREATE_TS datetime,
ENTITY_ID uniqueidentifier not null,
primary key (ID))
对象模型:
@Entity(name = "ext$DatabaseResults")
@Table(name = "##EXT_DATABASE_RESULTS", schema = "tempdb")
public class DatabaseResults {
@Id
@Persistent
@Column(name = "ID")
protected Long id;
@Column(name = "RESULT_KEY")
protected UUID resultKey;
@Column(name = "ENTITY_ID")
protected UUID entityId;}
当我尝试使用ext $ DatabaseResults选择一些数据时,我得到了异常 org.apache.openjpa.persistence.ArgumentException:表“tempdb。”## EXT_DATABASE_RESULTS“”给出的“com.haulmont.ext.core.entity.DatabaseResults”不存在。
我发现这个异常是从org.apache.openjpa.jdbc.meta.MappingInfo#createTable引发的,因为openjpa无法找到我的表。
答案 0 :(得分:0)
OpenJPA不能直接使用临时表。我建议使用NativeQueries和ResultSetMappings将数据映射到您的实体。