0
JPA加入:可以加入實體,嵌入式或基本類型。JPA加入類型爲嵌入式和基本類型
@Entity
public class Book {
@Id String id;
@Embedded
Author author;
String name;
}
Root<Book> root = criteriaQuery.from(Book.class);
root.join("author", JoinType.LEFT);
// or
root.join("author", JoinType.INNER);
root.join("name", JoinType.INNER);
從JPA的API,它是合法的,加入到嵌入式和基本型,但到底是什麼的JoinType是什麼意思?對於內連接屬性「名稱」,如果book.name爲null,查詢將返回空結果?嵌入式類型相同嗎?
如果Embeddable類型具有關聯,則在加入關聯之前,它必須首先加入Embedded屬性。所以它可以加入Embeddable類型的單一屬性。 – Sunnyday
不是。唯一需要做的就是使用'root.get()'導航從實體到嵌入屬性的路徑。我猜你真正要問的是如何處理嵌入屬性的空值。答案是在JPA中,具有空值的嵌入屬性與用默認值填充的非空嵌入屬性無法區分。 – crizzis
root.get(「embeddedAttrName」)返回一個Path實例,該實例無法加入到關聯中。加入源必須是From。 – Sunnyday