Собственный запрос Hibernate: ошибка неверного имени столбца SQL-17006JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Собственный запрос Hibernate: ошибка неверного имени столбца SQL-17006

Сообщение Anonymous »

package com.abc.def.model;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Entity;
import javax.persistence.Embeddable;
import javax.persistence.IdClass;
import java.util.Date;
import java.io.Serializable;

@NamedNativeQuery(name="getMetadata",query="
select a.name alias1,a.fullname alias2,
b.name alias3,b.age alias4,
c.height alias5,c.something alias6,
d.otherthing alias7
from lame_table_name a,
lame_table_name_2 b
where a.id = b.id
and b.id = c.id
and c.id = d.id
and d.id = :namedparameter
order by a.index,b.index
",
resultClass=MetadataModel.class)

@Entity
@IdClass(SomeIdClass.class)

public class MetadataModel{

@Id @Column("alias1")
private Type alias1property;

@Id @Column("alias2")
private Type2 alias2property;

@Column("alias3")
private Type3 alias3property;

//getters and setters
}

@Embeddable
class SomeIdClass implements Serializable{

//serialVersionUID line

@Id @Column("alias1")
private Type alias1property;

@Id @Column("alias2")
private Type2 alias2property;

//getter and setters
}


Ошибка: SQL-17006, неверное имя столбца, целый день пробовал варианты этой настройки
Должен ли я попробовать добавить Column("lame_table_name. name")

Я также попробовал использовать SqlResultSetMapping (и удалил @Column из полей POJO) (и указал все псевдонимы столбцов в столбцах атрибут SqlResultSetMapping) (нужно ли снова указывать сопоставление результатов при выполнении запроса через метод setResultSetMapping интерфейса SQLQuery?)

package com.abc.def.model;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Entity;
import javax.persistence.Embeddable;
import javax.persistence.IdClass;
import java.util.Date;
import java.io.Serializable;
//other imports for the SqlResultSetMapping

@NamedNativeQuery(name="getMetadata",query="
select a.name alias1,a.fullname alias2,
b.name alias3,b.age alias4,
c.height alias5,c.something alias6,
d.otherthing alias7
from lame_table_name a,
lame_table_name_2 b
where a.id = b.id
and b.id = c.id
and c.id = d.id
and d.id = :namedparameter
order by a.index,b.index
",
resultSetMapping="metaDataMapping")

@SqlResultSetMapping(name="metaDataMapping",
entities=@EntityResult(entityClass=MetadataModel.class,
fields = {@FieldResult(name="alias1Property",column="alias1")
//so on
}

)
)

@Entity
@IdClass(SomeIdClass.class)

public class MetadataModel{

private Type alias1property;

private Type2 alias2property;

private Type3 alias3property;

//getters and setters
}

//composite class, exactly as above


Подробнее здесь: https://stackoverflow.com/questions/128 ... -sql-17006
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»