Мне приходится иметь дело с представлением, объявленным следующим образом (Oracle 11g):
create view V_SOME_VIEW as
select X, Y
from SOME_TABLE
и объект для него:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
@Entity
@Table("V_SOME_VIEW")
@NamedQueries({
@NamedQuery(name = "VSomeView.findAll", query = "SELECT v FROM VSomeView v")})
public class VSomeView implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Lob
@Column(name = "X")
private Object x;
@Lob
@Column(name = "Y")
private Object y;
...
}
После создания статической метамодели с помощью плагина метамодели Gradle у меня есть следующая метамодель без атрибут у:
import javax.annotation.Generated;
import javax.persistence.metamodel.SingularAttribute;
import javax.persistence.metamodel.StaticMetamodel;
@Generated(value = "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor")
@StaticMetamodel(VSomeView.class)
public abstract class VSomeView_ {
public static volatile SingularAttribute<VSomeView, Object> x;
public static final String X = "x";
}
При запуске приложения у меня такие ошибки:
ОШИБКА o.h.ejb.metamodel.MetadataContext: HHH015011: невозможно найти поле статической метамодели: ...VSomeView_#y
Если я изменю тип столбца с java.lang.Object
на java.lang.String
, поле y будет создано правильно. Может кто-нибудь объяснить мне, в чем причина этого, пожалуйста?
CLOB
JDBC. В противном случае следует использовать пользовательский тип гибернации. а>. - person SternK   schedule 18.11.2019x, y
поля какjava.lang.Object
? Чего вы хотите достичь? - person SternK   schedule 18.11.2019