标签: entity

JPA - 定义@Entity对象的多个jar

我们正在以模块化的方式开发Spring,Hibernate和Maven的Web应用程序.有定义数据访问和查看特定内容的核心项目,然后有定义逻辑和实体的模块(@Entity)然后是定义控制器和视图的Web应用程序.

现在我们有一个安全模块定义了帐户和角色等安全实体,我们有一个原型模块定义了一些示例实体,如客户和订单.两者都有一个PersistenceUnit定义的内部a persistence.xml,除了PersistenceUnit名称之外几乎是空的,因为所有数据库配置都是在带有datasource.xml的web应用程序中完成的.Web应用程序应该将两个jar加载为maven依赖项.

这两个项目都可以构建好的,自动扫描所有实体并为各自的单元测试创​​建它们.如果单独添加,它们也将成功加载到Web应用程序中.

但是,只要两者同时加载,第二个将覆盖PersistenceUnit第一个,从而IllegalArgumentException : Not an entity为第一个实体创建一个.如果两个项目都有不同的持久性单元,加载Web应用程序将抛出另一个异常,说明已no single default persistence unit定义.

那么..我怎样才能@Entity在我的网络应用程序中加载所有带注释的类而不必在里面定义它们persistence.xml(比如这里),而是通过组件扫描? 似乎是一个想法,虽然我不知道如何使用和测试它...

我想我们要么必须在Web应用程序中合并所有PersistenceUnits,要么以编程方式加载所有实体.在persistence.xml中定义硬编码不是我们的选择.

entity annotations hibernate jpa

23
推荐指数
2
解决办法
2万
查看次数

.NET实体框架 - IEnumerable VS. IQueryable的

请看这行代码.这是一个存储过程的调用,它返回一个ObjectResult<long?>.为了提取长值,我添加了Select:

dbContext.FindCoursesWithKeywords(keywords).Select(l => l.Value);
Run Code Online (Sandbox Code Playgroud)

基于intellisense,这个Select返回IEnumerable<long>.

我不确定我是否在某处读过它或者只是习惯了这个假设 - 我一直认为当EF API返回IEnumerable(而不是IQueryable)时,这意味着结果已经实现.意味着他们已从数据库中撤出.

我今天发现我错了(或者这可能是个错误?).我一直收到错误

"不允许新事务,因为会话中还有其他线程在运行"

基本上,此错误告诉您在db阅读器仍在读取记录时尝试保存更改.

最终我通过(我认为是一个长镜头)解决了这个问题并增加ToArray()了实现IEnumerable<long>......

那么 - 底线 - 我应该期望IEnumerableEF的结果包含尚未实现的结果吗?如果是,那么有没有办法知道一个IEnumerable是否已实现?

如果这是'duhhh'问题之一,感谢并道歉...... :)

ienumerable frameworks entity entity-framework iqueryable

23
推荐指数
2
解决办法
2万
查看次数

使用没有主键的视图与实体

我刚刚开始将一个应用程序从原始ADO.NET和嵌入式SQL转换为Entity.我遇到了应用程序使用的其中一个视图的问题.视图没有主键,也没有唯一标识行的列(或列组合).这是选择创建视图:

SELECT
    filingmonth,
    CEIL(filingmonth / 3),
    licnum,
    filingyear,
    DECODE(GROUPING(insurername), '1', '- All Insured -', insurername),
    insurername,
    policylinecode,
    linedescription,
    SUM(NVL(grosspremium, 0)),
    SUM(DECODE(taxexempt, 1, grosspremium, 0)),
    TRUNC(
      CASE
        WHEN
          (
            b.rsn IS NOT NULL
            OR A.zeroreport = 1
          )
          AND b.datereceived IS NULL
            THEN A.datereceived
        ELSE b.datereceived
      END),
    SUM(aip.iscompanyadmitted(b.naiccocode, b.naicalienid)),
    A.insuredid
  FROM
    aip.slbtransinsured A
  LEFT OUTER JOIN aip.slbtransinsurer b
  ON
    A.insuredid = b.insuredid
  LEFT OUTER JOIN aip.slblinecodes C
  ON
    b.policylinecode = C.linecode
  WHERE
    A.submitted = 1
  AND A.entryincomplete = 0
  GROUP BY …
Run Code Online (Sandbox Code Playgroud)

sql oracle entity

22
推荐指数
2
解决办法
4万
查看次数

在实体框架中使用存储过程,如何让实体填充其导航属性?

实体框架非常慢,所以我尝试使用存储过程,但我遇到了这个问题.

实体框架允许您定义生成实体的存储过程.但是,我的实体具有"导航属性",使用此方法时未填充这些属性.

有工作吗?

.net c# entity entity-framework

21
推荐指数
2
解决办法
1万
查看次数

什么是在hibernate实体和数据传输对象之间进行转换的好模式?

我有类似的问题和关注如何在Web服务返回的Hibernate实体和数据传输对象之间进行转换,如本问题所述:

在ejb3中使用数据传输对象被认为是最佳实践

这里提到的一个因素是,如果域模型发生变化,一组DTO将在Web服务的情况下保护消费者.

即使它似乎会为我的项目添加大量代码,但这种推理似乎是合理的.

有没有一个好的设计模式可以用来将Hibernate实体(实现接口)转换为实现相同接口的DTO?

因此,假设以下两个实现'Book',我需要将BookEntity.class转换为BookDTO.class,以便我可以让JAXB序列化并返回.

同样,这整个前景对我来说似乎都很可疑,但如果有很好的模式来帮助处理这种转换,我很乐意获得一些见解.

是否有一些有趣的方式通过反射转换?还是一个我没想过的"建设者"模式?

我应该忽略DTO模式并传递实体吗?

java entity design-patterns hibernate data-transfer-objects

21
推荐指数
3
解决办法
2万
查看次数

找出两个java bean之间的版本跟踪差异

说我有一个java bean /一个有100个字段的实体(在这种情况下继承或不相关).更新操作后 - 在事务中,我想确定修改哪些字段以跟踪CVS等更新.最简单的方法是什么?任何框架建议?我应该制作这个对象的两个实例并迭代所有字段并匹配字段的值吗?在这种情况下,最好的等于方法怎么样呢?以下equals()似乎很尴尬:

return (field1.equals(o.field1)) && 
(field2.equals(o.field2)) &&  
(field3.equals(o.field3)) &&  
...
(field100.equals(o.field100));
Run Code Online (Sandbox Code Playgroud)

java entity javabeans

21
推荐指数
3
解决办法
2万
查看次数

OneToMany关系不起作用

我的表:

产品:id,名称

优惠:id,value,product_id

实体:

@Entity
@Table(name="product")
public class Product implements Serializable {
    @OneToMany(mappedBy="product")
    private Set<Offer> offers;
    ...
}

@Entity
@Table(name="offer")
public class Offer implements Serializable {
    @ManyToOne
    @JoinColumn(name="PRODUCT_ID")
    private Product product;
    ...
}
Run Code Online (Sandbox Code Playgroud)

当我尝试从表中获取一些数据时Product,我得到一个java.lang.NullPointerException,并且这段代码:product.getOffers()返回:

{IndirectSet:未实例化}

如何解决这个问题?

java entity jpa one-to-many

21
推荐指数
3
解决办法
2万
查看次数

Symfony2:spl_object_hash()期望参数1是对象,在Doctrine中给出的字符串

我试图通过执行使用对象User和Person填充数据库

坚持和冲洗.

首先,我正在创建Person对象并持久化并刷新它:

$person->setFirstname($enquiry->getFirstname());
$person->setLastname($enquiry->getLastname());
$person->setLastname($enquiry->getLastname());
$person->setSex($enquiry->getSex());
$person->setEmail($enquiry->getEmail());
$person->setAddress1($enquiry->getAddress1());
$person->setAddress2($enquiry->getAddress2());
$person->setCity($enquiry->getCity());
$person->setZipcode($enquiry->getZipcode());
$country = $em->getRepository('SciForumVersion2Bundle:Country')->findOneById($enquiry->getCountry());  
$person->setCountry($country);

$em->persist($person);
$em->flush();
Run Code Online (Sandbox Code Playgroud)

然后是我的User对象:

$user->setEmail($enquiry->getEmail());
$user->setPassword($enquiry->getPassword());
$user->setPersonId($person->getId());
$user->setDegree($enquiry->getDegree());
$user->setSex($enquiry->getSex());
$user->setOrganization($enquiry->getOrganization());
$user->setTelephone($enquiry->getTelephone());
$user->setFax($enquiry->getFax());
$user->setWorkplace($enquiry->getWorkplace());  
$user->setJobtype($enquiry->getJobtype());
$user->setResearchField($enquiry->getResearchField());
$user->setManageConference(0);
$user->setIp( $IP);
$user->setStatus( 0 );
$user->setDateRegistered( time() );

$em->persist($user);
$em->flush();
Run Code Online (Sandbox Code Playgroud)

但是当尝试flush()用户对象的持久性时,我收到错误:

Warning: spl_object_hash() expects parameter 1 to be object, string given in /home/milos/workspace/conference2.0/vendor/doctrine/lib/Doctrine/ORM/UnitOfWork.php line 1095 
Run Code Online (Sandbox Code Playgroud)

以下是entier的日志:

Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelRequest".
Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\RouterListener::onEarlyKernelRequest".
Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\SessionListener::onKernelRequest".
Notified event "kernel.request" to listener …
Run Code Online (Sandbox Code Playgroud)

database entity symfony doctrine-orm

21
推荐指数
1
解决办法
4万
查看次数

org.postgresql.util.PSQLException:错误:列user0_.id不存在 - Hibernate

我有一个使用hibernate映射到postgres数据库的模型类.我的模型类是:

@Entity
@Table(name="USER")
public class User {

    @Id 
    @GeneratedValue
    @Column(name="id")
    private long id;

    @Column(name="username", unique=true)
    private String username;

    @Column(name="email")
    private String email;

    @Column(name="created")
    private Timestamp created;

    public User(long id, String username, String email) {
        this.id = id;
        this.username = username;
        this.email = email;
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下查询检索用户名为"adam"的用户:

tx = session.beginTransaction();
TypedQuery<User> query = session.createQuery("FROM User u WHERE u.username = :username", User.class).setParameter("username", "adam");
user = query.getSingleResult();
Run Code Online (Sandbox Code Playgroud)

我得到一个例外,说:

org.postgresql.util.PSQLException: ERROR: column user0_.id does not exist
Run Code Online (Sandbox Code Playgroud)

我的bash shell数据库如下所示:

数据库

hibernate如何将类属性映射到表列?它是基于@Column(name="username")唯一匹配还是根据数据类型和约束(例如唯一/自动增量)尝试匹配?

java postgresql entity hibernate jpa

21
推荐指数
3
解决办法
2万
查看次数

即使我不要求,实体框架也始终包含上下文中的数据

我首先使用MVC.NET web api,EF和DB,我在上下文中关闭了延迟加载.即使关闭了LazyLoading,EF也会返回过多的数据.

例如,我有一个角色的用户.当我查询用户和包含角色时,Role.Users属性会自动填充数据,因为用户已加载到上下文中.

为什么我不能让EF给我刚刚要求的东西?或者我在这里错过了一些大事?

public partial class User
{
    public int UserID { get; set; }
    public string Title { get; set; }
    public string Email { get; set; }
    public int RoleID { get; set; }

    ....

    public virtual Role Role { get; set; }
} 

public partial class Role
{
    public int RoleID { get; set; }
    public string RoleName { get; set; }

    ....

    public virtual ICollection<User> Users { get; set; }
} 




return db.Users.Include(u => …
Run Code Online (Sandbox Code Playgroud)

c# frameworks entity entity-framework

20
推荐指数
2
解决办法
1万
查看次数