所以我正在编写一些XML生成代码,并发现以下属性值搞砸了XML格式:
"Jim/Bob"
Run Code Online (Sandbox Code Playgroud)
所以我查看了用作转义序列的XML实体,我看到的每个列表都没有包含正斜杠的列表.我错过了一些明显的东西吗?看起来像你想要逃脱的那种事情......
考虑层次结构:

以下类和xml:
HibernateUtil.java
package annotations;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
/**
*
* @author X3
*
*/
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static final String HIBERNATE_CFG = "hibernateAnnotations.cfg.xml";
private static SessionFactory buildSessionFactory()
{
Configuration cfg = new Configuration().addResource(HIBERNATE_CFG).configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().
applySettings(cfg.getProperties()).buildServiceRegistry();
SessionFactory sessionFactory = cfg.buildSessionFactory(serviceRegistry);
return sessionFactory;
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
Run Code Online (Sandbox Code Playgroud)
Users.java
package annotations;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import …Run Code Online (Sandbox Code Playgroud) 我有一个maven构建的基于CDI的Java SE应用程序,它有一个核心模块和其他模块.
核心有persistence.xml一些实体.模块有其他实体.
如何将实体添加到持久性单元的聚光灯下?
我已阅读Hibernate手册,http://docs.jboss.org/hibernate/stable/entitymanager/reference/en/html/configuration.html#setup-configuration-packaging
我也看过这些问题
我正在寻找一个解决方案,其中Hibernate将扫描所有加载的类,或者,将从其他罐中获取一些配置文件(例如CDI所做的beans.xml).
我的应用程序不使用Spring.我不坚持可移植性 - 我会坚持使用Hibernate.
persistence.xml并向其添加类?EntityManagerFactory可以在创建后添加@Entity类吗?更新:我发现org.?hibernate.?ejb.?Ejb3Configuration:
public Ejb3Configuration configure(String persistenceUnitName, Map integration)
Run Code Online (Sandbox Code Playgroud)
我有这个实体定义:
<?php
namespace Apw\BlackbullBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
/**
* Categories
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Apw\BlackbullBundle\Entity\CategoriesRepository")
*/
class Categories
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="categories_image", type="string", length=64, nullable = true)
*/
private $categoriesImage;
/**
* @var integer
*
* @ORM\Column(name="parent_id", type="integer", nullable = true, options={"default":0})
*/
private $parentId;
/**
* @var integer
*
* @ORM\Column(name="sort_order", type="integer", nullable = true, options={"default":0})
*/ …Run Code Online (Sandbox Code Playgroud) 我正在搜索,无法找到答案.我的应用程序中有数据库角色模型.用户可以拥有角色,但必须将此角色存储到数据库中.
但是,用户需要从数据库中添加默认角色.所以我创建了一个服务:
<?php
namespace Alef\UserBundle\Service;
use Alef\UserBundle\Entity\Role;
/**
* Description of RoleService
*
* @author oracle
*/
class RoleService {
const ENTITY_NAME = 'AlefUserBundle:Role';
private $em;
public function __construct(EntityManager $em)
{
$this->em = $em;
}
public function findAll()
{
return $this->em->getRepository(self::ENTITY_NAME)->findAll();
}
public function create(User $user)
{
// possibly validation here
$this->em->persist($user);
$this->em->flush($user);
}
public function addRole($name, $role) {
if (($newrole = findRoleByRole($role)) != null)
return $newrole;
if (($newrole = findRoleByName($name)) != null)
return $newrole;
//there is no existing role …Run Code Online (Sandbox Code Playgroud) 所以我们的项目使用PostgreSQL数据库,我们使用JPA来操作数据库.我们使用Netbeans 7.1.2中的自动创建程序从数据库创建了实体.
经过小的更改后,我们的主键值被描述为:
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Basic(optional = false)
@NotNull
@Column(name = "idwebuser", nullable = false)
private Integer idwebuser;
Run Code Online (Sandbox Code Playgroud)
问题是现在应用程序不灵活,因为当我们直接修改数据库(使用SQL或其他工具)而不是通过Java应用程序时 - 生成的值低于实际的数据库ID值 - 因此我们在创建新实体.
是否有可能JPA可以让数据库自动生成ID,然后在创建过程后获取它?或者什么是更好的解决方案?谢谢.
编辑 更具体地说:我们有一个用户表,我的问题是使用任何类型的策略生成类型,JPA正在插入一个具有由其生成器ID指定的新实体.这对我来说是错误的,因为如果我自己对表进行更改,通过添加新条目,应用程序的GeneratedValue低于当前ID - 这导致我们出现重复ID异常.我们能解决它吗?)?
关于答案的简短说明 我身边有一个小谎言,因为我们使用了PG管理员 - >查看前100行并从那里编辑了行而不是使用选择.但是,事实证明,这个编辑器以某种方式跳过了更新ID的过程,因此即使在DB中,当我们编写一个正确的INSERT时,它也会被执行不正确的ID!所以它基本上是我们使用的编辑器的问题,而不是数据库和应用程序......
现在它甚至可以使用 @GeneratedValue(strategy=GenerationType.IDENTITY)
我试图让实体进入自己的形式.我懒得记得一个getData()方法,但它在表单中不存在,我不记得如何使用它.
有没有办法让buildform方法中的实体不使用事件监听器?
我的意思是,像这样:
public function buildForm(FormBuilderInterface $builder, array $options)
{
/*some method to get the entity of the form such as getEntity????????*/
$builder->add('field');
}
Run Code Online (Sandbox Code Playgroud)