[英]Java class size in PermGen space
有很多關於 Java object 大小的問答,這很容易理解。 但我想知道 PermGen 空間中 Java class 的大小。
我想知道這個的原因是因為我正在編寫一個代碼生成器,生成很多類。 本質上,我為數據庫中的每個表/視圖生成兩個類。 現在我也想model外鍵關系。 與其維護一個復雜的、可序列化的對象結構(考慮一個具有唯一鍵的表被屬於具有其他外鍵的其他表的多個外鍵引用等),我更願意為每個UNIQUE KEY
生成一個 class 和一個class 每個外FOREIGN KEY
。
以下是我的問題:
public
類、 static
類和private
成員類之間有區別嗎?我找到了一個不同的解決方案,不會浪費 memory 每個KEY
生成一個 class 那么多。 我生成一個 class 大致如下所示:
public class References {
// First, initialise all unique keys
public static final UniqueKey<TAuthorRecord> SysPk_14655 =
createUniqueKey(TAuthor.T_AUTHOR, TAuthor.ID);
// Then initialise all foreign keys
public static final Reference<TBookRecord, TAuthorRecord> SysFk_14666 =
createReference(SysPk_14655, TBook.T_BOOK, TBook.AUTHOR_ID);
public static final Reference<TBookRecord, TAuthorRecord> SysFk_14667 =
createReference(SysPk_14655, TBook.T_BOOK, TBook.CO_AUTHOR_ID);
// Factory method for unique keys
protected static <R extends Record> UniqueKey<R>
createUniqueKey(Table<R> table, TableField<R, ?>... fields) {
// Factory method for foreign keys referencing unique keys
protected static <R extends Record, U extends Record> Reference<R, U>
createReference(UniqueKey<U> key, Table<R> table, TableField<R, ?>... fields) {
}
然后,生成的表類中的實際表可以引用和使用上述鍵。 根據 BobG 在他的一條評論中的建議,我查看了JPA注釋。 但我發現它們描述起來不是很有用:
@IdClass
需要一個類型作為參數,我想避免這種類型)一些評論提到了為什么我應該創建這樣一個生成器,因為有很多已建立的框架。 我正在為http://www.jooq.org做這個。 而且我覺得 jOOQ 正在填補當今數據庫抽象可能性方面的空白。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.