Luk*_*der 6 java memory code-generation permgen
有很多关于Java对象大小的问答,这很容易理解.但我想知道PermGen空间中Java类的大小.
我想知道这个的原因是因为我正在编写代码生成器,生成了很多类.基本上,我为数据库中的每个表/视图生成两个类.现在我也想建模外键关系.而不是维护一个复杂的,可序列化的对象结构(考虑一个具有唯一键的表,该表由属于具有其他外键的其他表的几个外键引用,等等),我宁愿每个生成一个类,每个UNIQUE KEY类生成一个类FOREIGN KEY.
这是我的问题:
public类,static类和private成员类之间有区别吗?我找到了一种不同的解决方案,不像为每个 生成一个类那样浪费那么多内存KEY。我生成了一个大致如下所示的类:
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) {
}
Run Code Online (Sandbox Code Playgroud)
生成的表类中的实际表可以引用并使用上述键。我按照BobG在他的评论之一中的建议研究了 JPA 注释。但我发现它们描述起来不太有用:
@IdClass需要一个类型作为参数,我想避免该类型)一些评论提到了为什么我应该创建这样一个生成器,因为有很多已建立的框架。我这样做是为了http://www.jooq.org。我觉得 jOOQ 正在填补当今数据库抽象可能性的空白。
| 归档时间: |
|
| 查看次数: |
801 次 |
| 最近记录: |