java - 如果属性是实体类型,如何为属性提供值?

标签 java hibernate jpa

我有PERSON,ACCOUNT,PERSON_ACCOUNT(用于人员和帐户的多对多关系)表和实体。 现在 Account 具有诸如储蓄、公司、工资等类型。 此类型是 ACCOUNT_TYPE 表中的预定义值。(创建的表)。

我有明确的关系。 Account 类的小代码

class Account{ 
private AccountType acctype;
}

现在我想创建

                      Person p = new Person();
                      p.setFirstName();
                      p.setLastName();

                      Account account=new Account();
                      account.setAccountType() ? // how I get predefine value from database to here?

                  Set accounts; // other code to create set
                  p.setAccounts(accounts);

我的问题是如何编写account.setAccountType(accountTypeEntity.getAccountType())
并且不应将数据插入到 ACCOUNT_TYPE 表中。

最佳答案

您需要在数据库中查询正确的AccountType,然后在此处分配值。

使用JPA时,Java中的所有对象都必须在数据库中具有对应的实体。您无法保存或保留具有 JPA 映射器在数据库中无法找到的字段的对象。

因此,请转到您的 session 并针对您想要的帐户类型运行查询并分配结果。

关于java - 如果属性是实体类型,如何为属性提供值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25545273/

相关文章:

java - 如何在不引发 org.threeten.bp.zone.ZoneRulesException 的情况下对使用 ZoneId.systemDefault 的代码进行单元测试

java - JSP、Java 和数据库。如果尝试登录时提交了错误的数据,如何再次调用同一个index.jsp?

java - Hibernate 和类继承。如何覆盖集合?

java - 如何使用 OpenJPA 将对象从一个表 "move"转移到另一个表?

hibernate - JPA - 事务未提交

java - 如何在 Java 中以彩虹顺序遍历所有 RGB 组合?

java - 在 Intellij "create project from archetype"向导中显示自定义原型(prototype)属性

java - Spring @Transactional 跨越两个 Hibernate 事务管理器的一个服务方法

java - 如果日期在数据库中存储为像 (132011) 这样的字符串,那么在 hibernate 中使用 to_date() 是否正确?

java - liquibase 变更集中的继承