小编Kor*_*gay的帖子

为什么没有调用PostConstruct?

我正在开发一个简单的Java EE应用程序.

我有这样的课:

import javax.annotation.PostConstruct;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

@Stateless
public class BlogEntryDao {

    EntityManager em;

    @PostConstruct
    public void initialize(){
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("Persistence");
        em = emf.createEntityManager();
    }

    public void addNewEntry(){
        Blogentry blogentry = new Blogentry();

        blogentry.setTitle("Test");
        blogentry.setContent("asdfasfas");

        em.persist(blogentry);

    }
}
Run Code Online (Sandbox Code Playgroud)

所以我的托管bean调用这个方法.直到这里没有问题.但是由于没有调用initialize方法,我在em.persist中获得了一个NPE .

为什么没有调用initialize方法?我在Glassfish服务器上运行它.

问候.

java ejb java-ee

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

与走数组相比,为什么Arrays.binarySearch没有提高性能?

试图解决Hackerland无线电发射机编程问题.

总而言之,挑战如下:

Hackerland是一维城市Ñ房屋,其中每个房子位于一些X 在x轴上.市长希望在城市房屋的屋顶上安装无线电发射器.每个发射机具有一个范围,ķ,这意味着它可以将信号发送到所有的房屋≤ ķ单位距离的路程.

鉴于Hackerland的地图和k的值,您能找到覆盖每个房屋所需的最小数量的发射器吗?

我的实现如下:

package biz.tugay;

import java.util.*;

public class HackerlandRadioTransmitters {

    public static int minNumOfTransmitters(int[] houseLocations, int transmitterRange) {
        // Sort and remove duplicates..
        houseLocations = uniqueHouseLocationsSorted(houseLocations);
        int towerCount = 0;
        for (int nextHouseNotCovered = 0; nextHouseNotCovered < houseLocations.length; ) {
            final int towerLocation = HackerlandRadioTransmitters.findNextTowerIndex(houseLocations, nextHouseNotCovered, transmitterRange);
            towerCount++;
            nextHouseNotCovered = HackerlandRadioTransmitters.nextHouseNotCoveredIndex(houseLocations, towerLocation, transmitterRange);
            if (nextHouseNotCovered == -1) {
                break;
            } …
Run Code Online (Sandbox Code Playgroud)

java arrays binary-search

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

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

如何将整数转换为Java中的字节?

我知道Java不允许无符号类型,所以我想知道它如何将整数转换为一个字节.假设我有一个值为255的整数a,我将整数转换为一个字节.值是否以字节11111111表示?换句话说,值是否更多地被视为带符号的8位整数,还是直接复制整数的最后8位?

java int byte casting

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

类的实例和表示实例的类之间的区别?

我使用Java作为示例,但这更像是一般的OOP设计相关问题.

让我们以IOExceptionJava中的s为例.为什么有一个类FileNotFoundException例如?难道不应该是一个实例IOException,其中的原因FileNotFound?我想说的FileNotFoundException是一个例子IOException.这到底在哪里?FileNotFoundButOnlyCheckedOnceException,FileNotFoundNoMatterHowHardITriedException..?

我也看到过我所在的项目中的代码,其中包括类FirstLineReaderLastLineReader存在的类.对我来说,这些类实际上代表了实例,但我在很多地方看到了这样的设计.以Spring Framework源代码为例,它带有数百个这样的类,每次看到一个我都看到一个实例而不是蓝图.这些课程不是蓝图吗?

我想问的是,如何在这两个非常简单的选项之间做出决定:

选项1:

enum DogBreed {
    Bulldog, Poodle;
}

class Dog {
    DogBreed dogBreed;
    public Dog(DogBreed dogBreed) {
        this.dogBreed = dogBreed;
    }
}
Run Code Online (Sandbox Code Playgroud)

选项2:

class Dog {}

class Bulldog extends Dog {
}

class Poodle extends Dog {
}
Run Code Online (Sandbox Code Playgroud)

第一个选项为调用者提供了配置它正在创建的实例的要求.在第二个选项中,类已经表示了实例本身(正如我所看到的,这可能是完全错误的......).

如果你同意这些类代表实例而不是蓝图,你会说创建表示实例的类是一个好习惯,或者我正在看这个是完全错误的,我的语句"表示实例的类"只是加载废话?

oop class

19
推荐指数
1
解决办法
943
查看次数

有没有办法在IntelliJ中保存断点并在以后恢复?

我可以定义一组断点,并将此定义保存在IntelliJ中并稍后恢复吗?

就像我在A级的40,50线断点一样.我可以保存这个,并以任何方式恢复吗?

谢谢.

intellij-idea

18
推荐指数
3
解决办法
2211
查看次数

如果我尝试删除它,为什么JPA就像我的实体一样是分离的,但如果我编辑它则不会​​分离?

所以我有一个基本的JSF Datatable,相关部分是:

<h:dataTable value="#{actorTableBackingBean.allActors}" var="actor">

    <h:column headerText="Actor Name" sortBy="#{actor.firstName}">
        <h:outputText value="#{actor.firstName}" />
    </h:column>

    <h:column>
        <h:form>
            <h:commandButton value="Delete Actor"
                             action="#{actorTableBackingBean.deleteActor(actor)}"/>
        </h:form>
    </h:column>

    <h:column>
        <h:form>
            <h:commandButton value="Randomize Actor Name"
                             action="#{actorTableBackingBean.editActor(actor)}"/>
        </h:form>
    </h:column>

</h:dataTable>
Run Code Online (Sandbox Code Playgroud)

这就是ActorTableBackingBean的样子:

@Named
@RequestScoped
public class ActorTableBackingBean implements Serializable {

    @Inject
    ActorDao actorDao;

    private List<Actor> allActors;

    public List<Actor> getAllActors() {
        return allActors;
    }

    @PostConstruct
    public void fillUp(){
        allActors = actorDao.getAllT();
    }

    public String deleteActor(Actor a){
        removeActor(a);
        return "/allActors.xhtml";
    }

    private String removeActor(Actor a){
        try{
            actorDao.deleteActor(a);
            return null;
        }catch (Exception e){ …
Run Code Online (Sandbox Code Playgroud)

jsf jpa

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

JPA utf-8字符没有保留

我有一个简单的Web应用程序,我使用JPA.

我有一个名为BlogEntry的实体.

当我提交一个新的BlogEntry时,当我调试我的应用程序时,我看到utf8字符就好了.

例如

em.persist(entity);
Run Code Online (Sandbox Code Playgroud)

在这一行中,如果我调试例如:

entity.getTitle()
Run Code Online (Sandbox Code Playgroud)

我可以成功地在IDE中看到utf-8字符.(如ğğ,或çç)

此外,我的数据库具有UTF8排序规则,我可以使用类似"INSERT INTO ..."的sql插入utf-8字符.

但是,使用JPA时,字符会保持为????

为什么会这样?

问候.

这是我的persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
    <persistence-unit name="Persistence">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>com.tugay.blog.core.model.Blogentry</class>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/blogdatabase"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.password" value="aabbccdd"/>
        </properties>
    </persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)

jpa utf-8

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

3 Swing应用程序设计:哪个最好?

我是桌面应用程序开发的新手,今年夏天我有一个非常大的项目.问题是代码必须非常清晰,所以当我更新代码时,我不会遇到麻烦.

结果,我想要一个良好的"关注点分离".对我来说最困难的部分是视图 - 控制器分离.

现在,我已经阅读了很多教程,讨论等.我已经以3种不同的方式设计了一个迷你应用程序.该应用程序很简单:单击将标签转换为"Hello world"的按钮.

你怎么看待这3个设计?

有没有更好的设计来满足我的期望?

设计1

View1.java:

public View1() {
    initComponents();
    this.controller = new Controller1(this);
}

private Controller1 controller;

public void updateLabel(String message){
    this.jLabel1.setText(message);
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    this.controller.doSomething();
}

private void initComponents() {
...
jButton1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton1ActionPerformed(evt);
        }
    });
...}
Run Code Online (Sandbox Code Playgroud)

Controller1.java:

public class Controller1 {
    public Controller1(View1 v){
        this.view = v;
    }

    public void doSomething(){
        this.view.updateLabel("Hello world");
    }

    private View1 view;
}
Run Code Online (Sandbox Code Playgroud)

设计2

View2.java:

public View2() {
        initComponents(); …
Run Code Online (Sandbox Code Playgroud)

java architecture model-view-controller swing

15
推荐指数
2
解决办法
3658
查看次数

Hibernate SessionFactory vs EntityManagerFactory

我一直在讨论这个问题,Hibernate SessionFactoryJPA EntityManagerFactory之间的鸟眼差异是JPA是标准的.您可以使用它而不必担心底层ORM.然而它会在底层调用底层的sessionFactory.(如果我错了,请纠正我)

但如果有人知道他将来只是坚持使用hibernate作为ORM,那么他应该从这两个工厂中选择什么呢?为什么呢?

其次,这两者在性能,功能,稳定性等方面还存在哪些差异?

java orm spring hibernate jpa

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