草庐IT

子实体

全部标签

java - JPA 实体映射到可选的 SecondaryTable

我有一个实体。我想有选择地从辅助表加载有关实体的其他信息。我有以下映射。@Entity@Table(name="program",schema="myschema")@SecondaryTable(name="program_info",schema="myschema",pkJoinColumns=@PrimaryKeyJoinColumn(name="program_id",referencedColumnName="program_id"))publicclassProgram{...}我已正确映射所有列,并且单元测试有效。当程序表中有一行在program_info表中没有对应行

java - 创建实体规则

我想知道这个简单问题的答案。当我创建一个实体对象并且我想限制一个属性的设置时(例如我不想让任何人给一个属性设置一个小于1的整数值),我应该在setter中实现它吗这个属性或者我应该在处理这些对象的类中检查这个限制?一般来说,只要我的getter返回并且setter设置属性,我可以实现getter和setter吗?我知道java中有一些规则(代码约定),所以我不想破坏其中任何一个。提前致谢,希望我的问题足够清楚,对于我可能犯的任何语法错误深表歉意:/。 最佳答案 是的,getter/setter对此很有用。例如:publicvoids

java - 有没有办法在没有 DTO 的情况下将 Hibernate 实体公开为 RESTful 资源?

我正在开发一个简单的网络应用程序,它将域模型公开为RESTful资源。我计划使用JPA2(Hibernate)和SpringMVCREST支持。在将Hibernate实体编码为XML/JSON时,如果实体被分离,它将为惰性子关联抛出LazyLoadingException。如果实体仍然附加到HibernateSession,它几乎会加载整个数据库。我尝试使用DozerCustomFieldMapper来确定该属性是否为未加载的惰性HibernateCollection,然后返回NULL。但如果我们有双向关联,Hibernate会急切地加载多对一端,Dozer将尝试复制属性,这将以无限循

java - Spring 无法注入(inject)实体管理器工厂

我使用JPA为我的DAO类编写测试,使用Hibernate作为JPA提供程序和Spring3.2。我无法正确注入(inject)实体管理器,尝试访问它时出现NullPointerException。我的GenericDAO实现如下所示:@RepositorypublicclassGenericDAOImplimplementsGenericDAO{@PersistenceContext(unitName="unitname")privateEntityManagerentityManager;publicEntityManagergetEntityManager(){returnent

java - 为什么查询dsl实体路径限制在四级?

我目前正在使用mavenapt插件生成EntityPath基类。com.mysema.mavenmaven-apt-plugin1.0.4processgenerate-sourcestarget/generated-sources/javacom.mysema.query.apt.jpa.JPAAnnotationProcessorcom.mysema.querydslquerydsl-apt${querydsl.version}com.mysema.querydslquerydsl-jpaapt${querydsl.version}这会生成所需的Q类,并且有助于为查询构建谓词。但是

java - 将 Hibernate 实体重构为子类

我有一个当前使用Hibernate映射为数据库表中的实体的类。此类应重构为一个抽象类,其中包含一些其所有子类共有的字段。我正在使用注释来映射hibernate实体/关系类。我想要有关如何进行此重构的建议/变体。此外,关于如何将存储在数据库中的数据(用于future的抽象父类(superclass))移动到具体子类之一的一些建议。 最佳答案 首先,我将创建父类(superclass)并添加必要的注释。您必须在以下两者之间做出决定:每类一table策略每个类层次策略单表加入子类策略我认为JoinedSubclass可以在这里工作。您添加

java - 使用多个数据源时 Spring 中的多个实体管理器问题

我的applicationContext.xml中有两个实体管理器,它们对应于两个不同的数据库。我可以使用entityManager1轻松查询database1,但是当我尝试使用entityManager2访问database2时,我没有得到任何结果。我正在使用Spring+Hibernate+JPA。这是我的ApplicationContext.xmlcharacterEncodingUTF-8characterEncodingUTF-8classpath*:META-INF/persistence.xmlclasspath*:META-INF/persistence2.xml这是我

java - Spring Rest API 验证应该在 DTO 中还是在实体中?

验证应该在SpringBootRestAPI中的哪一层。我有一些模型、端点和DTO。我在DTO中添加了一些@NotNull和@Size注释。我在端点中添加了@Valid注释以及@RequestParam注释。但现在我想知道我是否也应该在@Entity类中进行验证?我觉得这将是代码的重复。但我读到一个层永远不应该依赖另一个层。 最佳答案 具有讽刺意味的是,有多少人真正相信验证应该是我们在我们的Controller或它们与业务代码交换的值对象中参与的事情,而在其他任何地方都不应该关注状态验证。我们应该始终努力在任何应用程序的多个阶段执行

java - Spring/Hibernate 实体管理 Web 界面/UI

我们有一个服务器应用程序,它通过多种协议(protocol)向特定客户端UI公开特定模型和基于该模型构建的一组服务。这是一种服务器应用程序,一旦设置好,就不需要太多人工干预。但是,有时(尤其是首次部署解决方案时),必须创建和链接某些模型对象。此解决方案基于Spring、SpringMVC和Hibernate(除其他外)构建,对ORM内容使用JPA注释。我的问题:有没有人知道一个框架可以让我非常快速地设置(理想情况下完全通过配置)一个网络界面来管理(CRUD)实体?这不必很花哨,也不需要有花哨的安全性(我可以从应用程序服务器内部处理安全性)。然而,它需要能够处理实体之间的复杂关系(集合映

持久化实体时出现 javax.ejb.EJBException

我有一个名为Medico的实体,它是作为数据库中的实体类创建的,因此我认为此处的实体定义是故障安全的,但定义如下:@Entity@Table(name="medico")@XmlRootElement@NamedQueries({Allnamedquerieshere})publicclassMedicoimplementsSerializable{privatestaticfinallongserialVersionUID=1L;@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Basic(optional=false)@Not