Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
                        
                        5年前关闭。
                                                                                            
                
        
问题

给定特定于技术的Java Model T,我希望拥有:


在我的代码中使用的技术不可知模型A(即MVC中的M)。
持久性机制P来存储模型A


方法

目前,我已经找到了一些选择:

选项1:


手动为A创建类
手动创建代码以将T转换为A
手动创建第三个JAXB-Model J的XSD
从J生成JAXB-Model-Classes
手动创建代码以将A转换为J
使用JAXB自动保存J
加载时,必须手动将所有平移创建到另一个方向。
优点:看不到一个。那就是我的问题:)
缺点:所有选项的大部分开发工作。


选项2:


手动创建A的JAXB模型的XSD
为A生成JAXB-Model-Classes
手动创建代码以将T转换为A
使用JAXB自动保存A
加载时,必须手动将翻译创建到另一个方向。
优点:开发工作量少。 A可以直接保留。
缺点:我读到,使用JAXB类作为模型是一个坏主意。但是我不明白为什么。


选项3:


手动将A模型创建为eCore模型
从ecore-Model生成A的类
手动创建代码以将T转换为A
使用eCore资源自动保存A
加载时,必须手动将翻译创建到另一个方向。
优点:开发工作量少。 A可以直接保留。
缺点:没有?


从优点和缺点看,我似乎应该明确地使用eCore而不是JAXB。




使用eCore真的很清楚吗?还是我应该考虑的优点/缺点?
这是从技术特定模型T转换为技术不可知模型A的更简便方法。目前,我必须自己实现A和转换A T。一些更简单的方法会很好。

最佳答案

您可以使用JAXB将模型A转换为XML。如果您的问题首先出现在架构中,那么它将利用JAXB的Java优先方面。

关于java - 持久的与技术无关的Java模型:JAXB与eCore ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25288226/

10-13 21:38