@Entity @Table(name = "user") public class User { @Id private UUID id; @Column(name = "name") private String name; ... // getter setter ignored for brevity }
@Entity @Table(name = "student") public class Student { @Id private UUID id; @Column(name = "user_id") private UUID userId; @OneToOne @JoinColumn(name = "user_id", referencedColumnName = "id", insertable = false, updatable = false) private UserEntity userEntity; ... // getter setter ignored for brevity }
@Repository
public interface StudentRepository extend PagingAndSortingRepository<StudentEntity, UUID> {
Optional<StudentEntity> findByUserId(UUID userId);
}
StudentEntity student = studentRepository.findByUserId(userId).get() student.getUserId() --- this is present student.getUserEntity() -- NULL
不确定为什么UserEntity没有被填充为此调用的一部分。
问题很可能是持久化上下文仍然包含以前保存的实体(没有用户集)。您首先必须清除持久性上下文并再次加载它才能看到一个非空用户。
无论如何,就像评论中建议的那样,我会建议您只映射用户。您不需要userid
字段。按照您现在映射的方式,您应该可以使用以下内容:
Optional<StudentEntity> findByUserEntityId(UUID userId);
关于这个问题的更多信息,请阅读官方文档:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods.query-property-expressions
问题内容: 我是Go语言的新手,具有C#背景并且对如何构造Go应用程序感到困惑。 假设我正在构建一个REST API,它将位于数据库之上。还要说,即使完成后,鉴于业务的变迁等,此应用程序可能仍需要频繁更改。 在带有诸如Entity Framework和DTO之类的工具的C#中,我通过从控制器给出的结果中抽象出数据库来缓解此问题。如果更改数据库中一堆字段的名称,则可能必须更改数据库访问逻辑,但是希望
快速总结我想要实现的目标。请给出实施或设计建议:) 我有两个表:用户,图像。在UserDO中,我希望保留一组所有用户的图像,以及单个图像,即用户的肖像(在我的示例中,该组将包括肖像): 在ImageDO中,我有一个userid作为外键来记录哪个用户上传了图像。但是它没有布尔值,因为认为一个用户可能会上传许多图像,但只有一个是肖像。 有什么方法可以实现这一点吗?或者我需要维护另一个表(例如,Port
我有以下模式: 项目(ID,名称)项目用户(项目ID,用户ID)用户(名称,ID) 实体如下 显然是一对多。项目可以有多个用户。 现在,我的目标是编写jooq查询,在那里我可以获取已经有相应用户的项目对象。 但是当预期约15时,查询将恢复千分之一的结果
null 这些类有各自的映射,在数据库模型中,这些表没有关联,在hibernate映射中也没有关联,但是在保存合同时,它必须在字段(业务规则)中具有相同的,但在某些情况下,也给出了没有验证的合同。 我的问题是当我运行HQL查询时: 但Hibernate使用交叉连接语句翻译并合并所有记录。是否有方法在文件中的非相关类之间执行HQL查询? 规则:不应是映射的实体。
我只是在学习java ee 6。我的目标是有一个简单的crud应用程序,让我创建编辑列表和删除一个简单的实体,由id,一个名称字符串和一个描述字符串。我使用了eclipse而不是netbeans,使用了JBoss7而不是glass Fish,只是为了查看一些代码http://netbeans.org/kb/docs/web/jsf20-crud.html。嗯....它起作用了。 现在认为我的实体是
我希望在我正在从事的一个项目中使用CQR,但是我目前正在努力寻找实现CQR查询端的最佳方法。基于我有限的理解,有一个瘦数据层(有时称为瘦读取层),用于查询数据库并返回DTO,其中包含应用程序UI层使用的查询结果。 由于这是一个Java的EE应用程序,我正在开发薄数据层,使用JPA使用EntityManager.createNamedQuery查询数据库,返回一个包含结果的实体,然后将其映射到DTO