java - hibernate查询中的父记录

标签 java hibernate foreign-key-relationship relation many-to-one

我在使用 zkoss 和 hibernate 时遇到问题

我有两个模型,一个是 JuvenileInfo,另一个是 SchoolMeasure

在 SchoolMeasure 中我创建了多对一关系

@Transient @ManyToOne @JoinColumn(name = "juvenile_id", nullable = false) public JuvenileInfo juvenile;

当我访问时

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

session session = sessionFactory.openSession(); session.beginTransaction(); List result1 = session.createQuery("from ShoolBasedMeasure e inner join e.juvenile ") .list();

我收到错误 juvenile is not property ,所以任何人都可以帮助我如何获取父记录 ListView 以显示其任何列

最佳答案

该错误是由于您使用@Transient 注释而引起的。 @Transient 注释只能用在非持久属性上,这可能是你的问题,因为 Hibernate 无法在数据库中找到 transient 属性。

在这种情况下,您应该执行以下解决方案之一:

  1. 如果 juvenile 是一个持久化属性,那么你应该删除它的 @Transient 注解;
  2. 如果 juvenile 不是持久属性,并且您仅将其用于需要此属性的逻辑,那么您应该删除映射 @ManyToOne 和 @JoinColumn;

根据您的描述,第一个解决方案可能会起作用,请告诉我们它是否可以解决您的问题。

关于java - hibernate查询中的父记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32523127/

相关文章:

java - 如何将基类对象分配给父类引用?

保存对象/Hibernate 时出现 java.lang.NullPointerException

php - INNODB,mysql - 多行的外键?

database - 在这种情况下如何确定放置外键的位置?

java - 字符作为方程的运算符

java - 按钮的新 setText 属性无缘无故出现空指针异常

java - 为什么在使用数据库时更喜欢 Java 8 Stream API 而不是直接的 hibernate/sql 查询

java - 我们应该在哪里使用 commit(session),在 try 还是 finally 中?

entity-framework - Entity Framework ——级联删除复合键实体时,从属对象未在主体对象之前删除

java - 测试Java代码时"Cannot find symbol"