2016-04-25 20 views
0

私はSpring MVC & Hibernateで作業しています。私は自分のデータベースにビューを持っています。私はテーブルのように私のビューを定義しています。しかし、@Entityの代わりに@Embeddableを付けました。しかし、以下のコードを実行すると、ゼロの結果が得られます。しかし、ビューにはエントリがあります。私がやっている間違いは何ですか?結果がゼロになっています。hibernateアノテーション付きビュー

SubscriptionScheduler.java

package com.span.vms.scheduler; 

import java.util.Date; 
import java.util.List; 

import org.apache.log4j.Logger; 
import org.springframework.beans.factory.annotation.Autowired; 

import com.span.vms.model.Subscription; 
import com.span.vms.service.VulnerabilityService; 
public class SubscriptionScheduler { 

final static Logger logger = Logger.getLogger(SubscriptionScheduler.class); 
@Autowired 
VulnerabilityService vulnerabilityService; 

public void helloRajesh() { 
    List<Subscription> subscriptions = vulnerabilityService.findVulnerabilityBySubscription("rajesh"); 
    logger.info("Total Subscriptions " + subscriptions.size()); 
    logger.info("Hello Rajesh " + new Date()); 
    for (Subscription subscription : subscriptions) { 
     logger.info(subscription.getUser() + " - " + subscription.getCve_id()); 
    } 
} 

}

VulnerabilityService.java

package com.span.vms.service; 
import java.util.List; 
import com.span.vms.model.Subscription; 
import com.span.vms.model.Vulnerability; 
public interface VulnerabilityService { 
List<Subscription> findVulnerabilityBySubscription(String string); 
} 

VulnerabilityServiceImpl.java

package com.span.vms.service; 

import java.util.List; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Service; 
import org.springframework.transaction.annotation.Transactional; 

import com.span.vms.dao.SubscriptionDao; 
import com.span.vms.dao.VulnerabilityDao; 
import com.span.vms.model.Subscription; 
import com.span.vms.model.Vulnerability; 

@Service("vulnerabilityService") 
@Transactional 
public class VulnerabilityServiceImpl implements VulnerabilityService { 


    @Autowired 
    private SubscriptionDao subscriptionDao; 

    @Override 
    public List<Subscription> findVulnerabilityBySubscription(String user) { 
     return subscriptionDao.findVulnerabilityBySubscription(user); 
    } 
} 

SubscriptionDao.java

package com.span.vms.dao; 

import java.util.List; 

import com.span.vms.model.Subscription; 

public interface SubscriptionDao { 

    List<Subscription> findVulnerabilityBySubscription(String user); 
} 

SubscriptionDaoImpl.java

package com.span.vms.dao; 

import java.util.List; 

import org.hibernate.Criteria; 
import org.hibernate.criterion.Restrictions; 
import org.springframework.stereotype.Repository; 

import com.span.vms.model.Subscription; 

@Repository("SubscriptionDao") 
public class SubscriptionDaoImpl extends AbstractDao<Integer, Subscription> implements SubscriptionDao { 

    @SuppressWarnings("unchecked") 
    @Override 
    public List<Subscription> findVulnerabilityBySubscription(String user) { 
     Criteria criteria = createEntityCriteria(); 
     criteria.add(Restrictions.eq("user", user)); 
     return (List<Subscription>) criteria.list(); 
    } 
} 

AbstractDao.java

Subscription.java

package com.span.vms.model; 

import javax.persistence.Column; 
import javax.persistence.Embeddable; 
import javax.persistence.Table; 

@Embeddable 
@Table(name = "subscription") 
public class Subscription { 
    @Column(name = "cve_id", unique = false, nullable = false) 
    private String cve_id; 

    @Column(name = "user", nullable = false) 
    private String user; 

    public String getCve_id() { 
     return cve_id; 
    } 

    public void setCve_id(String cve_id) { 
     this.cve_id = cve_id; 
    } 

    public String getUser() { 
     return user; 
    } 

    public void setUser(String user) { 
     this.user = user; 
    } 

} 

答えて

関連する問題