首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

推荐一个合适快速开发原型产品的ORM框架 datanucleus

2012-10-30 
推荐一个适合快速开发原型产品的ORM框架 datanucleus@Deprecated 此方法已经out了,很多ORM框架都支持。?最

推荐一个适合快速开发原型产品的ORM框架 datanucleus

@Deprecated 此方法已经out了,很多ORM框架都支持。

?

最近一段时间在玩GAE,最终因为Bug太多,有些貌似BigTable的硬伤,所以就放弃之。
但是因为GAE接触到一个datanucleus 和 JDO。
JDO和JPA之间的关系我也没去研究,不过JDO的配置要比JPA简单,而且两者有相似之处,文档也比较齐全,所以学习成本较低。

我对datanuclues也没做什么研究,只是发现它的一个特性:可以自动帮你的Entity在数据库中生成对应的表。完全自动,不依靠插件。(我记得hibernate做这个事情,好像是要依赖hibernate tools吧?还是我已经火星了?呵呵)
如果你正要开发一个原型程序,那么datanuclues+hsqldb也许是一个很好的选择,完全不需要配置数据库,它全部帮你做了,包括实体之间的关系,这样在原型开发的时候节省了大量数据库的管理操作,减少了很多ORM的维护工作,感觉很不错。还有一点就是datanuclues的jar包比hibernate要小很多。

?

这里来一个3个实体的例子(这种关系GAE目前还不支持 *&@#):

B many-to-one A

C many-to-one A

C many-to-one B

使用datanuleus就只需要直接写出实体类,是不是很方便呢?

package org.datanucleus.samples.jdo.tutorial;import java.util.List;import javax.jdo.annotations.IdGeneratorStrategy;import javax.jdo.annotations.Join;import javax.jdo.annotations.PersistenceCapable;import javax.jdo.annotations.Persistent;import javax.jdo.annotations.PrimaryKey;@PersistenceCapablepublic class A {@PrimaryKey@Persistent(valueStrategy = IdGeneratorStrategy.INCREMENT)private Long id;private String name;@Join(column="A_B")private List<B> bList;@Join(column="A_C")private List<C> cList;//...get & set method}
?
package org.datanucleus.samples.jdo.tutorial;import java.util.List;import javax.jdo.annotations.IdGeneratorStrategy;import javax.jdo.annotations.PersistenceCapable;import javax.jdo.annotations.Persistent;import javax.jdo.annotations.PrimaryKey;@PersistenceCapablepublic class B {@PrimaryKey@Persistent(valueStrategy = IdGeneratorStrategy.INCREMENT)private Long id;private String name;private List<C> cList;//...get & set method}
?
package org.datanucleus.samples.jdo.tutorial;import javax.jdo.annotations.IdGeneratorStrategy;import javax.jdo.annotations.PersistenceCapable;import javax.jdo.annotations.Persistent;import javax.jdo.annotations.PrimaryKey;@PersistenceCapablepublic class C {@PrimaryKey@Persistent(valueStrategy = IdGeneratorStrategy.INCREMENT)private Long id;private String name;//...get & set method}
?

?

至于datanuclues 大家有兴趣的就到http://www.datanucleus.org/ 去了解吧。

本来想放上一个测试程序,但是依赖的jar太多就免去了。

?

6 楼 herowzz 2009-09-03   solonote 写道谢谢猫咪~ 请问一下你提到的几个ORM框架生成表需要手动操作吗?
datanuleus只要程序运行,如果你没有指定表它就会在运行时自动帮你生成.
呵呵 我已经out了

从这个问题可以看出,你是不是没有研究过其他orm?
不知道的东西不要妄自猜测.
7 楼 solonote 2009-09-03   herowzz 写道solonote 写道谢谢猫咪~ 请问一下你提到的几个ORM框架生成表需要手动操作吗?
datanuleus只要程序运行,如果你没有指定表它就会在运行时自动帮你生成.
呵呵 我已经out了

从这个问题可以看出,你是不是没有研究过其他orm?
不知道的东西不要妄自猜测.


谢谢,请投隐藏贴 8 楼 kjj 2009-09-03   如果只能自动生成表的话,你落后了,hibernate自己就可以,只需要再配置文件中配置一两个选项就可以了 9 楼 failure5152 2009-09-03   hibernate属性:
## auto schema export

#hibernate.hbm2ddl.auto create-drop
#hibernate.hbm2ddl.auto create
#hibernate.hbm2ddl.auto update
#hibernate.hbm2ddl.auto validate 10 楼 lnaigg 2009-09-03   原型有必要做数据库层么,挺累 11 楼 tangbo530 2009-09-03   原型也要数据库啊
这个。。。。 12 楼 Laynepeng 2009-09-03   GAE对datanuleus的支持也是不完全的,如果楼主在搞GAE,我推荐你看看这个框架,我觉得目前为止对GAE支持最好的一个:

Siena,
Google Group: http://groups.google.com/group/siena-discuss/topics

另外我想问一下,你现在能访问GAE?我已经几个月没法访问了啊。。。 13 楼 solonote 2009-09-04   我这里GAE一直都可以访问。 GAE目前只是一个预览版,所以我觉得不必花太多的时间在上边,一大堆BUG。而且BigTable 本身就有很多限制。
它的例子都比较简单,但你要做一个完整的应用我觉得目前是难以实现的,我在文中所提的那种简单的依赖关系它都不支持 14 楼 it.go 2009-09-04   楼主需要好好学习hibernate你就明白什么是orm,而不是没事在东搞搞 西搞搞,这样浪费自己的时间,也浪费大家阅读你的文章的时间。请原谅我的直白。看了你的文章我上火。喝王老吉去了...

热点排行