私は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;
}
}