private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "idcondominio")
private Integer idcondominio;
@Basic(optional = false)
@Column(name = "nomecond")
private String nomecond;
@Column(name = "cnpjcond")
private Integer cnpjcond;
@OneToMany(mappedBy = "condominio")
private Collection<Bloco> blocoCollection;
布洛科
private static final long serialVersionUID = 1L;
@EmbeddedId
protected BlocoPK blocoPK;
@Basic(optional = false)
@Column(name = "nomebloco")
private String nomebloco;
@Column(name = "numero")
private String numero;
@JoinColumn(name = "condominio_idcondominio", referencedColumnName = "idcondominio", insertable = false, updatable = false)
@ManyToOne(optional = false)
private Condominio condominio;
=================================创建方法
public void create(Bloco bloco) throws PreexistingEntityException, Exception {
if (bloco.getBlocoPK() == null) {
bloco.setBlocoPK(new BlocoPK());
}
bloco.getBlocoPK().setCondominioIdcondominio(bloco.getCondominio().getIdcondominio());
EntityManager em = null;
try {
em = getEntityManager();
em.getTransaction().begin();
Condominio condominio = bloco.getCondominio();
if (condominio != null) {
condominio = em.getReference(condominio.getClass(), condominio.getIdcondominio());
bloco.setCondominio(condominio);
}
em.persist(bloco);
if (condominio != null) {
condominio.getBlocoCollection().add(bloco);
condominio = em.merge(condominio);
}
em.getTransaction().commit();
} catch (Exception ex) {
if (findBloco(bloco.getBlocoPK()) != null) {
throw new PreexistingEntityException("Bloco " + bloco + " already exists.", ex);
}
throw ex;
} finally {
if (em != null) {
em.close();
}
}
}
============================控制器方法
@RequestMapping(value = "cadbloco", method = RequestMethod.POST)
public String cadbloco(@ModelAttribute(value = "Bloco") Bloco bloco, @RequestParam("condid") int idcond ) throws Exception {
BlocoJpaController jpa = new BlocoJpaController();
Condominio c = new Condominio();
c.setIdcondominio(idcond);
jpa.create(bloco);
return ("redirect:bloco.htm");
}
例外
NestedServletException:请求处理失败;嵌套异常是javax.Persistence.rollbackException:exception[EclipseLink-4002](Eclipse Persistence.Services-2.5.v20140319-9AD6ABD):org.Eclipse.Persistence.exceptions.databaseException内部异常:com.mysql.jdbc.exceptions.jdbc4.mysqlIntegrityConstraintViolationException:Column'nomecond'不能为空错误代码:1048调用:插入到condominio(bind=>[2 parameters bound]查询:InsertObjectQuery(entity.condominio[idcondominio=null])org.springframework.web.servlet.frameworkservlet.processRequest(frameworkservlet.java:973)org.springframework.web.servlet.frameworkservlet.dopost(.wsfilter.doFilter(wsfilter.java:52)org.netbeans.modules.web.monitor.server.monitorfilter.doFilter(monitorfilter.java:393)
Oracle 最近宣布把企业级的ORM平台TopLink代码捐献给Eclipse社区,发起并领导名为EclipseLink的Eclipse持久平台项目。 Eclipse持久平台由多个组件构成,主要有EclipseLink-ORM,EclipseLink-OXM,EclipseLink-SDO, EclipseLink-DAS,EclipseLink-DBWS,EclipseLink-XR,Ecli
问题内容: 我已经更新了问题,以便现在 两个 表都使用自动增量。持久化到表的问题也许是数据库模式的问题? 在尝试这样持久保存MessageBean时: 堆栈跟踪: 从MySql: 以及消息字段: 和评论字段: 问题答案: 因为我建议您以下: 在表的字段中添加声明: 在实体声明时使用 这谈到了JPA使用MySQL的自动增量功能 如果不适用(例如,您可能想在同一事务中创建相关的另一个实体),请使用TA
问题内容: 也许我弄错了,但是我虽然JPA能够更新现有表(更改了添加列的模型),但在我的情况下却无法正常工作。 我可以在日志中看到eclipselink尝试创建它,但是由于它已经存在而失败。它不会尝试更新以添加该列,而是继续进行。 这是带有更改的表(添加了在线列) 此后,继续进行以下操作。 我是在做错什么还是错误? 问题答案: 从EclipseLink 2.4开始,您可以在持久性单元的规范中使用它
在JavaEE环境中,我将JPA2.1实现与EclipseLink一起使用, CarColor转换器: persistence.xml > 当我在persistence.xml文件上注释转换器的声明,并试图将我的实体持久化到数据库中时,会出现这样的错误:“请确保转换器类名正确,并且存在于持久化单元定义中。”并且没有编译时间异常,只有一个非常明确的警告:
EclipseLink有可能和夸库斯一起使用吗?还是夸库斯太难与Hibernate耦合了? 我们正在选择我们的MP实现的过程中,我们希望尽可能接近参考信息 我在https://quarkus.io/guides/甚至这个论坛上都没有看到太多信息来表明eclipselink也可以与Quarkus一起使用。 任何关于夸库斯为什么与JPA的一个特定的impl(如果是的话)绑得如此紧密的指示也将是受欢迎的
问题内容: 该EclipseLink的文件说,我需要在我的pom.xml与Maven得到它下面的条目: 但是当我尝试使用注释时,NetBeans告诉我,找不到该类。确实如此:Eclipselink的javax.persistence包中没有Entity类。 我必须如何使用Maven设置Eclipselink? 问题答案: 该工件不提供JPA 2.0 API ,您需要添加: 为了简单起见,我建议使用