Não consigo persistir

Discussões, sugestões, informações em geral.

Não consigo persistir

Mensagempor gerez » Qua Jul 22, 2009 6:34 pm

Criei uma tabela Estado com dois campos uf char(2) e descricao varchar(100), criei também uma classe estado conforme abaixo, e também um index.php conforme abaixo, no entanto da um erro muito estranho, o que pode ser???
Erro persistindo a entidade.
[DAO: A entidade estado possui um erro. A coluna [DN] nao existe. Verifique se o nome da propriedade [] existe como nome de coluna da tabela. Verifique se a propriedade [] possui a anotacao @Column(name="").Verifique se o esta correto e se a coluna existe na tabela.]
Notice: O DAO foi destruído com uma transacao em andamento. in C:\xampp\htdocs\grconcursos\lib\engine\db\DAO.php on line 273

//Classe Estado
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
* Description of estado
*
* @author Eleandro
*/

/**
* @Entity
* @Table(name="estado")
*/
class estado {


/**
* @var String
* @Column(name="uf")
*/
private $uf;

/**
* @var String
* @Column(name="descricao")
*/
private $descricao;

function __construct() {
}

/**
* @Id
* @Column (name="uf")
* @return String
*/
public function getUf() {
return $this->uf;
}
/**
* @param String $uf
* @return void
*/
public function setUf($uf) {
$this->uf = $uf;
}

/**
* @Column (name="descricao")
* @return String
*/
public function getDescricao() {
return $this->descricao;
}

/**
* @param String $descricao
* @return void
*/
public function setDescricao($descricao) {
$this->descricao = $descricao;
}
}
?>


//index.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
require_once 'dominio/estado.php';
require_once("lib/engine/engine.db.php");
// put your code here

$driver = DbDriverFactory::getDriver(DbDriver::MYSQL);
$driver->configure('localhost','ifep_pb','root','');
//Criar o DAO
$dao = new DAO($driver);
//Instanciar nossa Entidade

$estado = new estado();
$estado->setUf('DN');
$estado->setDescricao('DEPTO NACIONAL');
try {
$dao->beginTransaction();
$dao->save($estado);
$dao->commitTransaction();
echo 'Registro Incluido com Sucesso!!!';
} catch (Exception $e) {
echo $e->getMessage();
}
?>
</body>
</html>
gerez
 
Mensagens: 1
Data de registro: Qua Jul 22, 2009 6:26 pm

Re: Não consigo persistir

Mensagempor seelaz » Sex Jul 24, 2009 10:49 am

Antes de mais nada, obrigado pelo interesse pelo Engine.DB.

Sua dúvida apresentou um caso novo. Ainda nao haviamos testado chaves primárias que não fossem numéricas. É um caso interessante e vou levar em consideração na implementacao da versao 0.2 na qual estou trabalhando. Como um workaround eu poderia sugerir a inclusão de uma propriedade/coluna ID. Isso provavelmente solucionará seu problema. Se não der resultado me poste o erro que vamos achar uma solução.

Silas.
seelaz
Administrador
 
Mensagens: 5
Data de registro: Sex Mar 20, 2009 5:16 pm


Retornar para Geral

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante

cron