Vee*_*Arr 1 java sql persistence hibernate
对于我正在进行的项目,我需要将一些POJO持久化到数据库中.POJOs类定义有时是高度嵌套的,但是它们应该变平,因为嵌套是树状的并且不包含循环(并且基本元素最终是基元/字符串).优选的是,所使用的解决方案为每种数据类型创建一个表,并且表将在POJO中具有每个基元成员一个字段.子类化和类似问题不是这个特定项目的问题.
有没有人知道任何现有的解决方案可以:
CREATE TABLE从类定义中自动生成定义可以通过对类文件的最小修改/注释和最小外部配置来执行此操作的解决方案是首选.
例:
Java类
//Class to be persisted
class TypeA {
String guid;
long timestamp;
TypeB data1;
TypeC data2;
}
class TypeB {
int id;
int someData;
}
class TypeC {
int id;
int otherData;
}
Run Code Online (Sandbox Code Playgroud)
可以映射到
CREATE TABLE TypeA (
guid CHAR(255),
timestamp BIGINT,
data1_id INT,
data1_someData INT,
data2_id INt,
data2_otherData INT
);
Run Code Online (Sandbox Code Playgroud)
或类似的东西.
我会使用标准化的 Java Persistence API(JPA),最好使用注释.关于您的要求:
EntityManager#persist(Object entity) 那样做.<T> T EntityManager#find(Class<T> entityClass, Object primaryKey) 那样做.正如所暗示的,JPA是一个API,您需要一个实现来使用它.我更喜欢Hibernate Entity Manager或EclipseLink(参见前一个问题).