0

我創建了一個映射我的MSSQL Server 2012的訂單表的實體Bean。 到目前爲止它工作正常,但我想加入一些文章視圖中的列以提供更多信息爲選定的文章。與ForeignKeys加入列

該訂單由多個行組成,其ID爲Prime-Key,Article-Nr爲Foreign-Key。

我試圖將視圖與文章映射到文章實體,但由於行數量(> 10.000),它減緩了一切(但它的工作原理應該......非常慢......太過了沒有其他需要再映射此視圖 - 除了3行信息)。所以我只想加入訂單實體的必要欄目。

但我不明白它的工作...

我與註釋「NamedQuery」

@Entity 
@NamedNativeQuery(name = "Joinnecessary", 
query = "SELECT Order.PK_ID, Order.FK_OrderID, Order.FK_ArticleNr, Order.Amount, 
Article.Description, Article.Price 
FROM Order left outer join Article 
on Order.FK_ArticleNr=Article.PK_ArticleNr", 
resultClass = Order.class) 

我不知道哪兒的問題是試了一下...我的記錄實體具有訂單實體列表並顯示它們。

for(orders o: orderlist){ 

在此行中我得到以下錯誤:

重度:無效的對象名稱 '秩序'。 線程「main」中的異常org.hibernate.exception.SQLGrammarException:無法初始化集合:[qohelet.Record.orders#1] at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)

在文獻中我發現了映射1:1-關係的一些有趣的東西。 (從這個角度看我的關係可以看作是這樣的),如果發現了@ SecondaryTable - 譯註這可能是我所有的問題精解:

@Table(name = "Order") 
@SecondaryTable(name = "Article", pkJoinColumns = { 
    @PrimaryKeyJoinColumn(name = "PK_ArticleNr", referencedColumnName = "FK_ArticleNr") 
}) 

其他列我參加這樣的:

@Column(table = "Article") 
private String description; 

但我想註釋「PrimaryKeyJoinColumn」未命名一樣,沒有任何理由...

初始SessionFactory的創建 failed.org.hibernate.AnnotationException:SecondaryTable JoinColumn 不能引用在螺紋非主鍵

java.lang.ExceptionInInitializerErrorException「主」

是否有擁有我想要的效果的另一個註解要得到?或者我使用當前的錯誤? 謝謝!

回答

0

word order是T-SQL中的特殊語句。 - >使用[]

select [order].* 
from [order] 
left outer join Article on [order].FK_ArticleNr = Article.PK_ArticleNr 
order by price