Tag: orm

我应该将Entity(Persistent)对象转换为DTO对象吗?

我的项目分层如下: – DAL (Entity) – > BLL (DTO) – > ApplicationComponent (ViewModel) 。 应用程序的多个组件( ApplicationComponent )将访问BLL 。 组件包括Windows服务,Web服务,Web API和MVC控制器。 我将NHibernate Entity对象转换为DTO对象,同时将它们从DAL传递到BLL 。 在将此状态传递给ApplicationComponent , BLL再次将其转换为ViewModel 。 这有助于我将问题与每个层中的数据处理方式分开。 我不赞成返回NHibernate Entity对象来查看以下原因: – 数据暴露给我想要隐藏的UI (或只在需要时才暴露),如密码,用户types,权限等。 在引用/连接上,当访问属性时, NHibernate执行额外的查询,从而使得使用延迟加载无效。 向用户( Entity )暴露的不必要的数据会造成混淆和缺陷。 持久性实现泄漏到BLL / UI 。 Entity不是为UIdevise的。 它不能在所有情况下提供UI 。 我们在DTO属性上使用属性来进行用户inputvalidation,这与Entity看起来很奇怪。 我正面临以下问题: 最明显的问题是具有相同function的冗余对象。 我必须在每个图层中编写映射器方法来转换对象。 这可以通过使用AutoMapper或类似的东西最小化; 但是并没有完全解决问题。 问题: – 这是一个过度分离,应该避免(至less最小化)? 如果这种方法是正确的,我没有看到任何简单的方法来完全绕过我上面提到的两个问题。 请build议。 […]

错误:java.lang.NoSuchMethodError:org.objectweb.asm.ClassWriter。<init>(I)V

我正在开发一个小的Spring应用程序。 我必须将学生信息的详细信息存储在数据库中。 我开发了一个SimpleFormController。 我使用了NetBeans + Hibernate mapping + Spring。 当我部署项目时,会发生以下错误。 我的spring-config-db-applicationContext.xml如下所示: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!– Hibernate session factory –> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <constructor-arg index="0"> <value>${driverClassName}</value> </constructor-arg> <constructor-arg index="1"> <value>${url}</value> </constructor-arg> <constructor-arg index="2"> <value>${username}</value> </constructor-arg> <constructor-arg index="3"> <value>${password}</value> </constructor-arg> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource"/> </property> <!– […]

Hibernate表类是否需要Serializable?

我inheritance了使用Hibernate 3.0连接到SQL Server数据库的Websphere Portal项目。 这个项目中大约有130个Hibernate表类。 他们都实现了Serializable。 没有一个声明serialVersionUID字段,所以Eclipse IDE显示了所有这些类的警告。 有没有实际需要这些类来实现Serializable? 如果是这样,是否有任何工具来一次添加生成的serialVersionUID字段到大量的类(只是为了使警告消失)?

何时,为什么JPA实体应该实现Serializable接口?

问题在于标题。 下面我刚刚介绍了一些我的想法和发现。 当我有非常简单的域模型(3表没有任何关系),我所有的实体没有实现Serializable。 但是,当域模型变得更复杂时,我得到了RuntimeException,它说我的一个实体没有实现Serializable。 我使用Hibernate作为JPA实现。 我在想: 它是供应商特定的要求/行为吗? 我的序列化实体会发生什么? 它们应该是可序列化的用于存储还是转移? 在哪一刻,有必要让我的实体可序列化?

只使用Django的数据库部分

有人知道“模块化”是如何Django? 我可以只使用ORM部分来获取映射到数据库表的类并知道如何从这些表读/写? 如果不是的话,你会推荐什么“Hibernate的Python等价物”?

在加载时将自定义属性添加到Laravel / Eloquent模型?

我希望能够在加载时为Laravel / Eloquent模型添加一个自定义属性/属性,类似于RedBean的 $model->open()方法。 例如,目前,在我的控制器中,我有: public function index() { $sessions = EventSession::all(); foreach ($sessions as $i => $session) { $sessions[$i]->available = $session->getAvailability(); } return $sessions; } 能够省略循环并且已经设置和填充了“可用”属性将是很好的。 我已经尝试过使用文档中描述的一些模型事件来在对象加载时附加这个属性,但是目前为止还没有成功。 笔记: “可用”不是基础表中的字段。 $sessions被作为API的一部分作为JSON对象返回,因此在模板中调用类似$session->available()的内容不是一个选项

为Hibernate表和列自动保留字转义

我正在尝试为几个不同的数据库使用一个Hibernate映射:H2,Oracle,MySql。 每个数据库都有一个不同的保留字列表。 我想Hibernate自动转义保留字。 我知道我可以: 使用反引号强制转义(逃避一切只是为了安全) 改变所有的标识符,所以他们肯定不是关键字在任何数据库(使他们难看) 将模式绑定到一组特定的数据库,转义关键字的联合(如果向混合添加新的数据库,将会中断) 有没有更优雅的解决scheme?

hibernate – @ElementCollection – 奇怪的删除/插入行为

@Entity public class Person { @ElementCollection @CollectionTable(name = "PERSON_LOCATIONS", joinColumns = @JoinColumn(name = "PERSON_ID")) private List<Location> locations; […] } @Embeddable public class Location { […] } 鉴于以下类结构,当我尝试将新位置添加到人员位置列表时,总是会导致以下SQL查询: DELETE FROM PERSON_LOCATIONS WHERE PERSON_ID = :idOfPerson 和 A lotsa' inserts into the PERSON_LOCATIONS table Hibernate(3.5.x / JPA 2)删除给定Person的所有关联logging,并重新插入所有以前的logging,加上新的logging。 我有这样的想法,位置上的equals / hashcode方法将解决问题,但它并没有改变任何东西。 任何提示都表示赞赏!

我应该启用还是禁用dynamic代理与entity framework4.1和MVC3?

有人可以提出一些build议或指出一些可以帮助做出这个决定的博客/文章? 代理人对我来说看起来很陌生,我不愿意使用它们。 我喜欢通过在模型中使用虚拟属性来控制“延迟加载”的能力,但这几乎是我所能看到的所有好处。 我的应用程序是一个简单的MVC Web应用程序,当实体遇到更改的状态时,我不需要将任何挂钩连接到上下文中。 无论如何,这里是我非常有限的利弊名单,让我知道,如果我与任何这样的基础。 优点 在“保存”或“更新”上,我可以通过“应用”更改 延迟加载configuration非常简单。 缺点 以前从未使用过代理服务器,这是对自己和团队成员看起来不舒服的方法的改变。 尴尬的debugging。 如果我想序列化/反序列化,需要额外的代码 在“保存”或“更新”上,代理必须是从上下文中检索的同一个对象。

为什么Hibernate不需要参数构造函数?

无参构造函数是一个需求(像Hibernate这样的工具在这个构造函数中使用reflection来实例化对象)。 我得到了这个手势波形的答案,但有人可以进一步解释吗? 谢谢